{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<font color=\"red\">注</font>: 使用 tensorboard 可视化需要安装 tensorflow (TensorBoard依赖于tensorflow库，可以任意安装tensorflow的gpu/cpu版本)\n",
    "\n",
    "```shell\n",
    "pip install tensorflow-cpu\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T14:25:23.803194Z",
     "start_time": "2025-02-01T14:25:18.033603Z"
    }
   },
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "    \n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n",
    "\n",
    "seed = 42\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=12, micro=3, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.0\n",
      "numpy 1.26.4\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.1\n",
      "torch 2.5.1+cpu\n",
      "cpu\n"
     ]
    }
   ],
   "execution_count": 1
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "```shell\n",
    "$ tree -L 1 cifar-10                                    \n",
    "cifar-10\n",
    "├── sampleSubmission.csv\n",
    "├── test\n",
    "├── train\n",
    "└── trainLabels.csv\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:02:22.760020Z",
     "start_time": "2025-02-01T15:02:20.616627Z"
    }
   },
   "source": [
    "from pathlib import Path\n",
    "\n",
    "DATA_DIR = Path(\"D:/develop/PG/python/code/deep_learning_code/cifar-10\")\n",
    "\n",
    "train_lables_file = DATA_DIR / \"trainLabels.csv\"\n",
    "test_csv_file = DATA_DIR / \"sampleSubmission.csv\" #测试集模板csv文件\n",
    "train_folder = DATA_DIR / \"train\"\n",
    "test_folder = DATA_DIR / \"test\"\n",
    "\n",
    "#所有的类别\n",
    "class_names = [\n",
    "    'airplane',\n",
    "    'automobile',\n",
    "    'bird',\n",
    "    'cat',\n",
    "    'deer',\n",
    "    'dog',\n",
    "    'frog',\n",
    "    'horse',\n",
    "    'ship',\n",
    "    'truck',\n",
    "]\n",
    "\n",
    "def parse_csv_file(filepath, folder): #filepath:csv文件路径，folder:图片所在文件夹\n",
    "    \"\"\"Parses csv files into (filename(path), label) format\"\"\"\n",
    "    results = []\n",
    "    #读取所有行\n",
    "    with open(filepath, 'r') as f:\n",
    "#         lines = f.readlines()  为什么加[1:]，可以试这个\n",
    "        #第一行不需要，因为第一行是标题\n",
    "        lines = f.readlines()[1:]   # 第一行不要的\n",
    "    for line in lines:#依次去取每一行\n",
    "        image_id, label_str = line.strip('\\n').split(',') #图片id 和标签分离\n",
    "        image_full_path = folder / f\"{image_id}.png\" # 图片路径\n",
    "        results.append((image_full_path, label_str)) #得到对应图片的路径和分类\n",
    "    return results\n",
    "\n",
    "# 解析对应的文件夹\n",
    "train_labels_info = parse_csv_file(train_lables_file, train_folder)\n",
    "test_csv_info = parse_csv_file(test_csv_file, test_folder)\n",
    "#打印\n",
    "import pprint\n",
    "pprint.pprint(train_labels_info[0:5])\n",
    "pprint.pprint(test_csv_info[0:5])\n",
    "print(len(train_labels_info), len(test_csv_info))\n",
    "print(type(train_labels_info), type(test_csv_info))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/train/1.png'),\n",
      "  'frog'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/train/2.png'),\n",
      "  'truck'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/train/3.png'),\n",
      "  'truck'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/train/4.png'),\n",
      "  'deer'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/train/5.png'),\n",
      "  'automobile')]\n",
      "[(WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/test/1.png'),\n",
      "  'cat'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/test/2.png'),\n",
      "  'cat'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/test/3.png'),\n",
      "  'cat'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/test/4.png'),\n",
      "  'cat'),\n",
      " (WindowsPath('D:/develop/PG/python/code/deep_learning_code/cifar-10/test/5.png'),\n",
      "  'cat')]\n",
      "50000 300000\n",
      "<class 'list'> <class 'list'>\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 划分训练集、验证集、测试集"
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T14:26:13.406677Z",
     "start_time": "2025-02-01T14:26:13.328684Z"
    }
   },
   "source": [
    "# train_df = pd.DataFrame(train_labels_info)\n",
    "train_df = pd.DataFrame(train_labels_info[0:45000]) # 取前45000张图片作为训练集\n",
    "valid_df = pd.DataFrame(train_labels_info[45000:]) # 取后5000张图片作为验证集\n",
    "test_df = pd.DataFrame(test_csv_info)\n",
    "\n",
    "train_df.columns = ['filepath', 'class']\n",
    "valid_df.columns = ['filepath', 'class']\n",
    "test_df.columns = ['filepath', 'class']\n",
    "\n",
    "print(train_df.head())\n",
    "print(valid_df.head())\n",
    "print(test_df.head())"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                            filepath       class\n",
      "0  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...        frog\n",
      "1  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...       truck\n",
      "2  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...       truck\n",
      "3  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...        deer\n",
      "4  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...  automobile\n",
      "                                            filepath       class\n",
      "0  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...       horse\n",
      "1  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...  automobile\n",
      "2  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...        deer\n",
      "3  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...  automobile\n",
      "4  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...    airplane\n",
      "                                            filepath class\n",
      "0  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...   cat\n",
      "1  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...   cat\n",
      "2  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...   cat\n",
      "3  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...   cat\n",
      "4  D:\\develop\\PG\\python\\code\\deep_learning_code\\c...   cat\n"
     ]
    }
   ],
   "execution_count": 4
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:09:04.784365Z",
     "start_time": "2025-02-01T15:09:04.778984Z"
    }
   },
   "cell_type": "code",
   "source": [
    "for idx, label in enumerate(class_names):\n",
    "    print(idx, label)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 airplane\n",
      "1 automobile\n",
      "2 bird\n",
      "3 cat\n",
      "4 deer\n",
      "5 dog\n",
      "6 frog\n",
      "7 horse\n",
      "8 ship\n",
      "9 truck\n"
     ]
    }
   ],
   "execution_count": 23
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:04:52.784803Z",
     "start_time": "2025-02-01T15:04:50.226959Z"
    }
   },
   "source": [
    "from PIL import Image\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "from torchvision import transforms\n",
    "\n",
    "class Cifar10Dataset(Dataset):\n",
    "    df_map = {\n",
    "        \"train\": train_df,\n",
    "        \"eval\": valid_df,\n",
    "        \"test\": test_df\n",
    "    }\n",
    "    label_to_idx = {label: idx for idx, label in enumerate(class_names)} # 类别映射为idx\n",
    "    idx_to_label = {idx: label for idx, label in enumerate(class_names)} # idx映射为类别,为了test使用\n",
    "    def __init__(self, mode, transform=None):\n",
    "        self.df = self.df_map.get(mode, None) # 获取对应模式的df，不同字符串对应不同模式\n",
    "        if self.df is None:\n",
    "            raise ValueError(\"mode should be one of train, val, test, but got {}\".format(mode))\n",
    "        # assert self.df, \"df is None\"\n",
    "        self.transform = transform\n",
    "        \n",
    "    def __getitem__(self, index):\n",
    "        img_path, label = self.df.iloc[index] # 获取图片路径和标签\n",
    "        img = Image.open(img_path).convert('RGB')\n",
    "        # # img 转换为 channel first\n",
    "        # img = img.transpose((2, 0, 1))\n",
    "        # transform\n",
    "        img = self.transform(img) # 数据增强\n",
    "        # label 转换为 idx\n",
    "        label = self.label_to_idx[label]\n",
    "        return img, label\n",
    "    \n",
    "    def __len__(self):\n",
    "        return self.df.shape[0] # 返回df的行数,样本数\n",
    "    \n",
    "IMAGE_SIZE = 32\n",
    "mean, std = [0.4914, 0.4822, 0.4465], [0.247, 0.243, 0.261]\n",
    "\n",
    "transforms_train = transforms.Compose([\n",
    "        # resize\n",
    "        transforms.Resize((IMAGE_SIZE, IMAGE_SIZE)), #缩放\n",
    "        # random rotation 40\n",
    "        transforms.RandomRotation(40), #随机旋转\n",
    "        # horizaontal flip\n",
    "        transforms.RandomHorizontalFlip(),  #随机水平翻转\n",
    "        transforms.ToTensor(), #转换为tensor\n",
    "        # transforms.Normalize(mean, std) #标准化\n",
    "    ]) #数据增强\n",
    "\n",
    "transforms_eval = transforms.Compose([\n",
    "        # resize\n",
    "        transforms.Resize((IMAGE_SIZE, IMAGE_SIZE)),\n",
    "        transforms.ToTensor(),\n",
    "        # transforms.Normalize(mean, std)\n",
    "    ])\n",
    "# ToTensor还将图像的维度从[height, width, channels]转换为[channels, height, width]。\n",
    "train_ds = Cifar10Dataset(\"train\", transforms_train)\n",
    "eval_ds = Cifar10Dataset(\"eval\", transforms_eval)"
   ],
   "outputs": [],
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "source": [
    "train_ds[0][0].shape # 图片的shape,输入"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2025-02-01T15:04:52.835408Z",
     "start_time": "2025-02-01T15:04:52.785798Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([3, 32, 32])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "code",
   "source": [
    "print(train_ds.idx_to_label)  # 类别映射为idx\n",
    "train_ds.label_to_idx # idx映射为类别"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2025-02-01T15:04:52.841485Z",
     "start_time": "2025-02-01T15:04:52.836400Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{0: 'airplane', 1: 'automobile', 2: 'bird', 3: 'cat', 4: 'deer', 5: 'dog', 6: 'frog', 7: 'horse', 8: 'ship', 9: 'truck'}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'airplane': 0,\n",
       " 'automobile': 1,\n",
       " 'bird': 2,\n",
       " 'cat': 3,\n",
       " 'deer': 4,\n",
       " 'dog': 5,\n",
       " 'frog': 6,\n",
       " 'horse': 7,\n",
       " 'ship': 8,\n",
       " 'truck': 9}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 8
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:04:52.853211Z",
     "start_time": "2025-02-01T15:04:52.843706Z"
    }
   },
   "source": [
    "batch_size = 64\n",
    "train_dl = DataLoader(train_ds, batch_size=batch_size, shuffle=True)   \n",
    "eval_dl = DataLoader(eval_ds, batch_size=batch_size, shuffle=False)"
   ],
   "outputs": [],
   "execution_count": 9
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:33.249653Z",
     "start_time": "2025-02-01T15:04:52.854063Z"
    }
   },
   "source": [
    "# 遍历train_ds得到每张图片，计算每个通道的均值和方差\n",
    "def cal_mean_std(ds):\n",
    "    mean = 0.\n",
    "    std = 0.\n",
    "    for img, _ in ds:\n",
    "        mean += img.mean(dim=(1, 2))\n",
    "        std += img.std(dim=(1, 2))\n",
    "    mean /= len(ds)\n",
    "    std /= len(ds)\n",
    "    return mean, std\n",
    "\n",
    "# 经过 normalize 后 均值为0，方差为1\n",
    "print(cal_mean_std(train_ds))"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(tensor([0.4369, 0.4268, 0.3947]), tensor([0.2464, 0.2418, 0.2359]))\n"
     ]
    }
   ],
   "execution_count": 10
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义模型"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:33.356715Z",
     "start_time": "2025-02-01T15:05:33.250642Z"
    }
   },
   "source": [
    "class CNN(nn.Module):\n",
    "    def __init__(self, num_classes):\n",
    "        super().__init__()\n",
    "        self.model = nn.Sequential(\n",
    "            nn.Conv2d(in_channels=3, out_channels=128, kernel_size=3, padding=\"same\"),\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(128),# 批标准化，在通道数上做归一化\n",
    "            nn.Conv2d(in_channels=128, out_channels=128, kernel_size=3, padding=\"same\"), #输出尺寸（128，32，32）\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(128),\n",
    "            nn.MaxPool2d(kernel_size=2), #输出尺寸（128，16，16）\n",
    "            nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=\"same\"),\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(256),\n",
    "            nn.Conv2d(in_channels=256, out_channels=256, kernel_size=3, padding=\"same\"), #输出尺寸（256，16，16）\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(256),\n",
    "            nn.MaxPool2d(kernel_size=2),#输出尺寸（256，8，8）\n",
    "            nn.Conv2d(in_channels=256, out_channels=512, kernel_size=3, padding=\"same\"),\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(512),\n",
    "            nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=\"same\"), #输出尺寸（512，8，8）\n",
    "            nn.ReLU(),\n",
    "            nn.BatchNorm2d(512),\n",
    "            nn.MaxPool2d(kernel_size=2), #输出尺寸（512，4，4）\n",
    "            nn.Flatten(), #展平\n",
    "            nn.Linear(8192, 512),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(512, num_classes),\n",
    "        ) #Sequential自动连接各层，把各层的输出作为下一层的输入\n",
    "        \n",
    "    def forward(self, x):\n",
    "        return self.model(x)\n",
    "        \n",
    "for key, value in CNN(len(class_names)).named_parameters():\n",
    "    print(f\"{key:^40}paramerters num: {np.prod(value.shape)}\")\n",
    "    \n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             model.0.weight             paramerters num: 3456\n",
      "              model.0.bias              paramerters num: 128\n",
      "             model.2.weight             paramerters num: 128\n",
      "              model.2.bias              paramerters num: 128\n",
      "             model.3.weight             paramerters num: 147456\n",
      "              model.3.bias              paramerters num: 128\n",
      "             model.5.weight             paramerters num: 128\n",
      "              model.5.bias              paramerters num: 128\n",
      "             model.7.weight             paramerters num: 294912\n",
      "              model.7.bias              paramerters num: 256\n",
      "             model.9.weight             paramerters num: 256\n",
      "              model.9.bias              paramerters num: 256\n",
      "            model.10.weight             paramerters num: 589824\n",
      "             model.10.bias              paramerters num: 256\n",
      "            model.12.weight             paramerters num: 256\n",
      "             model.12.bias              paramerters num: 256\n",
      "            model.14.weight             paramerters num: 1179648\n",
      "             model.14.bias              paramerters num: 512\n",
      "            model.16.weight             paramerters num: 512\n",
      "             model.16.bias              paramerters num: 512\n",
      "            model.17.weight             paramerters num: 2359296\n",
      "             model.17.bias              paramerters num: 512\n",
      "            model.19.weight             paramerters num: 512\n",
      "             model.19.bias              paramerters num: 512\n",
      "            model.22.weight             paramerters num: 4194304\n",
      "             model.22.bias              paramerters num: 512\n",
      "            model.24.weight             paramerters num: 5120\n",
      "             model.24.bias              paramerters num: 10\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "source": [
    "total_params = sum(p.numel() for p in CNN(len(class_names)).parameters() if p.requires_grad)\n",
    "print(f\"Total trainable parameters: {total_params}\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:33.438372Z",
     "start_time": "2025-02-01T15:05:33.359705Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total trainable parameters: 8779914\n"
     ]
    }
   ],
   "execution_count": 12
  },
  {
   "cell_type": "code",
   "source": [
    "512*4*4"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:33.446142Z",
     "start_time": "2025-02-01T15:05:33.439874Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8192"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 13
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练\n",
    "\n",
    "pytorch的训练需要自行实现，包括\n",
    "1. 定义损失函数\n",
    "2. 定义优化器\n",
    "3. 定义训练步\n",
    "4. 训练"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:33.598634Z",
     "start_time": "2025-02-01T15:05:33.592413Z"
    }
   },
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "@torch.no_grad()\n",
    "def evaluating(model, dataloader, loss_fct):\n",
    "    loss_list = []\n",
    "    pred_list = []\n",
    "    label_list = []\n",
    "    for datas, labels in dataloader:\n",
    "        datas = datas.to(device)\n",
    "        labels = labels.to(device)\n",
    "        # 前向计算\n",
    "        logits = model(datas)\n",
    "        loss = loss_fct(logits, labels)         # 验证集损失\n",
    "        loss_list.append(loss.item())\n",
    "        \n",
    "        preds = logits.argmax(axis=-1)    # 验证集预测\n",
    "        pred_list.extend(preds.cpu().numpy().tolist())\n",
    "        label_list.extend(labels.cpu().numpy().tolist())\n",
    "        \n",
    "    acc = accuracy_score(label_list, pred_list)\n",
    "    return np.mean(loss_list), acc\n"
   ],
   "outputs": [],
   "execution_count": 15
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TensorBoard 可视化\n",
    "\n",
    "\n",
    "训练过程中可以使用如下命令启动tensorboard服务。\n",
    "\n",
    "```shell\n",
    "tensorboard \\\n",
    "    --logdir=runs \\     # log 存放路径\n",
    "    --host 0.0.0.0 \\    # ip\n",
    "    --port 8848         # 端口\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:39.743018Z",
     "start_time": "2025-02-01T15:05:33.599629Z"
    }
   },
   "source": [
    "from torch.utils.tensorboard import SummaryWriter\n",
    "\n",
    "\n",
    "class TensorBoardCallback:\n",
    "    def __init__(self, log_dir, flush_secs=10):\n",
    "        \"\"\"\n",
    "        Args:\n",
    "            log_dir (str): dir to write log.\n",
    "            flush_secs (int, optional): write to dsk each flush_secs seconds. Defaults to 10.\n",
    "        \"\"\"\n",
    "        self.writer = SummaryWriter(log_dir=log_dir, flush_secs=flush_secs)\n",
    "\n",
    "    def draw_model(self, model, input_shape):\n",
    "        self.writer.add_graph(model, input_to_model=torch.randn(input_shape))\n",
    "        \n",
    "    def add_loss_scalars(self, step, loss, val_loss):\n",
    "        self.writer.add_scalars(\n",
    "            main_tag=\"training/loss\", \n",
    "            tag_scalar_dict={\"loss\": loss, \"val_loss\": val_loss},\n",
    "            global_step=step,\n",
    "            )\n",
    "        \n",
    "    def add_acc_scalars(self, step, acc, val_acc):\n",
    "        self.writer.add_scalars(\n",
    "            main_tag=\"training/accuracy\",\n",
    "            tag_scalar_dict={\"accuracy\": acc, \"val_accuracy\": val_acc},\n",
    "            global_step=step,\n",
    "        )\n",
    "        \n",
    "    def add_lr_scalars(self, step, learning_rate):\n",
    "        self.writer.add_scalars(\n",
    "            main_tag=\"training/learning_rate\",\n",
    "            tag_scalar_dict={\"learning_rate\": learning_rate},\n",
    "            global_step=step,\n",
    "            \n",
    "        )\n",
    "    \n",
    "    def __call__(self, step, **kwargs):\n",
    "        # add loss\n",
    "        loss = kwargs.pop(\"loss\", None)\n",
    "        val_loss = kwargs.pop(\"val_loss\", None)\n",
    "        if loss is not None and val_loss is not None:\n",
    "            self.add_loss_scalars(step, loss, val_loss)\n",
    "        # add acc\n",
    "        acc = kwargs.pop(\"acc\", None)\n",
    "        val_acc = kwargs.pop(\"val_acc\", None)\n",
    "        if acc is not None and val_acc is not None:\n",
    "            self.add_acc_scalars(step, acc, val_acc)\n",
    "        # add lr\n",
    "        learning_rate = kwargs.pop(\"lr\", None)\n",
    "        if learning_rate is not None:\n",
    "            self.add_lr_scalars(step, learning_rate)\n"
   ],
   "outputs": [],
   "execution_count": 16
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Save Best\n"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:39.749444Z",
     "start_time": "2025-02-01T15:05:39.744165Z"
    }
   },
   "source": [
    "class SaveCheckpointsCallback:\n",
    "    def __init__(self, save_dir, save_step=5000, save_best_only=True):\n",
    "        \"\"\"\n",
    "        Save checkpoints each save_epoch epoch. \n",
    "        We save checkpoint by epoch in this implementation.\n",
    "        Usually, training scripts with pytorch evaluating model and save checkpoint by step.\n",
    "\n",
    "        Args:\n",
    "            save_dir (str): dir to save checkpoint\n",
    "            save_epoch (int, optional): the frequency to save checkpoint. Defaults to 1.\n",
    "            save_best_only (bool, optional): If True, only save the best model or save each model at every epoch.\n",
    "        \"\"\"\n",
    "        self.save_dir = save_dir\n",
    "        self.save_step = save_step\n",
    "        self.save_best_only = save_best_only\n",
    "        self.best_metrics = -1\n",
    "        \n",
    "        # mkdir\n",
    "        if not os.path.exists(self.save_dir):\n",
    "            os.mkdir(self.save_dir)\n",
    "        \n",
    "    def __call__(self, step, state_dict, metric=None):\n",
    "        if step % self.save_step > 0:\n",
    "            return\n",
    "        \n",
    "        if self.save_best_only:\n",
    "            assert metric is not None\n",
    "            if metric >= self.best_metrics:\n",
    "                # save checkpoints\n",
    "                torch.save(state_dict, os.path.join(self.save_dir, \"best.ckpt\"))\n",
    "                # update best metrics\n",
    "                self.best_metrics = metric\n",
    "        else:\n",
    "            torch.save(state_dict, os.path.join(self.save_dir, f\"{step}.ckpt\"))"
   ],
   "outputs": [],
   "execution_count": 17
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Early Stop"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:39.760248Z",
     "start_time": "2025-02-01T15:05:39.750438Z"
    }
   },
   "source": [
    "class EarlyStopCallback:\n",
    "    def __init__(self, patience=5, min_delta=0.01):\n",
    "        \"\"\"\n",
    "\n",
    "        Args:\n",
    "            patience (int, optional): Number of epochs with no improvement after which training will be stopped.. Defaults to 5.\n",
    "            min_delta (float, optional): Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute \n",
    "                change of less than min_delta, will count as no improvement. Defaults to 0.01.\n",
    "        \"\"\"\n",
    "        self.patience = patience\n",
    "        self.min_delta = min_delta\n",
    "        self.best_metric = -1\n",
    "        self.counter = 0\n",
    "        \n",
    "    def __call__(self, metric):\n",
    "        if metric >= self.best_metric + self.min_delta:\n",
    "            # update best metric\n",
    "            self.best_metric = metric\n",
    "            # reset counter \n",
    "            self.counter = 0\n",
    "        else: \n",
    "            self.counter += 1\n",
    "            \n",
    "    @property\n",
    "    def early_stop(self):\n",
    "        return self.counter >= self.patience"
   ],
   "outputs": [],
   "execution_count": 18
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-02-01T15:05:40.240363Z",
     "start_time": "2025-02-01T15:05:39.761235Z"
    }
   },
   "source": [
    "# 训练\n",
    "def training(\n",
    "    model, \n",
    "    train_loader, \n",
    "    val_loader, \n",
    "    epoch, \n",
    "    loss_fct, \n",
    "    optimizer, \n",
    "    tensorboard_callback=None,\n",
    "    save_ckpt_callback=None,\n",
    "    early_stop_callback=None,\n",
    "    eval_step=500,\n",
    "    ):\n",
    "    record_dict = {\n",
    "        \"train\": [],\n",
    "        \"val\": []\n",
    "    }\n",
    "    \n",
    "    global_step = 0\n",
    "    model.train()\n",
    "    with tqdm(total=epoch * len(train_loader)) as pbar:\n",
    "        for epoch_id in range(epoch):\n",
    "            # training\n",
    "            for datas, labels in train_loader:\n",
    "                datas = datas.to(device)\n",
    "                labels = labels.to(device)\n",
    "                # 梯度清空\n",
    "                optimizer.zero_grad()\n",
    "                # 模型前向计算\n",
    "                logits = model(datas)\n",
    "                # 计算损失\n",
    "                loss = loss_fct(logits, labels)\n",
    "                # 梯度回传\n",
    "                loss.backward()\n",
    "                # 调整优化器，包括学习率的变动等\n",
    "                optimizer.step()\n",
    "                preds = logits.argmax(axis=-1) #最大值的索引\n",
    "            \n",
    "                acc = accuracy_score(labels.cpu().numpy(), preds.cpu().numpy())     # 计算准确率\n",
    "                loss = loss.cpu().item() # 计算损失\n",
    "                # record\n",
    "                \n",
    "                record_dict[\"train\"].append({\n",
    "                    \"loss\": loss, \"acc\": acc, \"step\": global_step # 记录每一步的损失和准确率\n",
    "                })\n",
    "                \n",
    "                # evaluating\n",
    "                if global_step % eval_step == 0:\n",
    "                    model.eval()\n",
    "                    val_loss, val_acc = evaluating(model, val_loader, loss_fct)\n",
    "                    record_dict[\"val\"].append({\n",
    "                        \"loss\": val_loss, \"acc\": val_acc, \"step\": global_step\n",
    "                    })\n",
    "                    model.train()\n",
    "                    \n",
    "                    # 1. 使用 tensorboard 可视化\n",
    "                    if tensorboard_callback is not None:\n",
    "                        tensorboard_callback(\n",
    "                            global_step, \n",
    "                            loss=loss, val_loss=val_loss,\n",
    "                            acc=acc, val_acc=val_acc,\n",
    "                            lr=optimizer.param_groups[0][\"lr\"],\n",
    "                            )\n",
    "                \n",
    "                    # 2. 保存模型权重 save model checkpoint\n",
    "                    if save_ckpt_callback is not None:\n",
    "                        save_ckpt_callback(global_step, model.state_dict(), metric=val_acc)\n",
    "\n",
    "                    # 3. 早停 Early Stop\n",
    "                    if early_stop_callback is not None:\n",
    "                        early_stop_callback(val_acc)\n",
    "                        if early_stop_callback.early_stop:\n",
    "                            print(f\"Early stop at epoch {epoch_id} / global_step {global_step}\")\n",
    "                            return record_dict\n",
    "                    \n",
    "                # udate step\n",
    "                global_step += 1\n",
    "                pbar.update(1)\n",
    "                pbar.set_postfix({\"epoch\": epoch_id})\n",
    "        \n",
    "    return record_dict\n",
    "        \n",
    "\n",
    "epoch = 20\n",
    "\n",
    "model = CNN(num_classes=10)\n",
    "\n",
    "# 1. 定义损失函数 采用交叉熵损失\n",
    "loss_fct = nn.CrossEntropyLoss()\n",
    "# 2. 定义优化器 采用 adam\n",
    "# Optimizers specified in the torch.optim package\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 1. tensorboard 可视化\n",
    "if not os.path.exists(\"runs\"):\n",
    "    os.mkdir(\"runs\")\n",
    "tensorboard_callback = TensorBoardCallback(\"runs/cifar-10\")\n",
    "tensorboard_callback.draw_model(model, [1, 3, IMAGE_SIZE, IMAGE_SIZE])\n",
    "# 2. save best\n",
    "if not os.path.exists(\"checkpoints\"):\n",
    "    os.makedirs(\"checkpoints\")\n",
    "save_ckpt_callback = SaveCheckpointsCallback(\"checkpoints/cifar-10\", save_step=len(train_dl), save_best_only=True)\n",
    "# 3. early stop\n",
    "early_stop_callback = EarlyStopCallback(patience=5)\n",
    "\n",
    "model = model.to(device)\n"
   ],
   "outputs": [],
   "execution_count": 19
  },
  {
   "cell_type": "code",
   "source": [
    "record = training(\n",
    "    model,\n",
    "    train_dl,\n",
    "    eval_dl,\n",
    "    epoch,\n",
    "    loss_fct,\n",
    "    optimizer,\n",
    "    tensorboard_callback=None,\n",
    "    save_ckpt_callback=save_ckpt_callback,\n",
    "    early_stop_callback=early_stop_callback,\n",
    "    eval_step=len(train_dl)\n",
    "    )"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2025-02-01T15:06:15.375659Z",
     "start_time": "2025-02-01T15:05:40.242870Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/14080 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "d567c27df9c348e797f99570e3784578"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m                         Traceback (most recent call last)",
      "Cell \u001B[1;32mIn[20], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m record \u001B[38;5;241m=\u001B[39m \u001B[43mtraining\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m      2\u001B[0m \u001B[43m    \u001B[49m\u001B[43mmodel\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      3\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtrain_dl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      4\u001B[0m \u001B[43m    \u001B[49m\u001B[43meval_dl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      5\u001B[0m \u001B[43m    \u001B[49m\u001B[43mepoch\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      6\u001B[0m \u001B[43m    \u001B[49m\u001B[43mloss_fct\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      7\u001B[0m \u001B[43m    \u001B[49m\u001B[43moptimizer\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m      8\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtensorboard_callback\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[0;32m      9\u001B[0m \u001B[43m    \u001B[49m\u001B[43msave_ckpt_callback\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msave_ckpt_callback\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m     10\u001B[0m \u001B[43m    \u001B[49m\u001B[43mearly_stop_callback\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mearly_stop_callback\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m     11\u001B[0m \u001B[43m    \u001B[49m\u001B[43meval_step\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43mlen\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mtrain_dl\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m     12\u001B[0m \u001B[43m    \u001B[49m\u001B[43m)\u001B[49m\n",
      "Cell \u001B[1;32mIn[19], line 30\u001B[0m, in \u001B[0;36mtraining\u001B[1;34m(model, train_loader, val_loader, epoch, loss_fct, optimizer, tensorboard_callback, save_ckpt_callback, early_stop_callback, eval_step)\u001B[0m\n\u001B[0;32m     28\u001B[0m optimizer\u001B[38;5;241m.\u001B[39mzero_grad()\n\u001B[0;32m     29\u001B[0m \u001B[38;5;66;03m# 模型前向计算\u001B[39;00m\n\u001B[1;32m---> 30\u001B[0m logits \u001B[38;5;241m=\u001B[39m \u001B[43mmodel\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdatas\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m     31\u001B[0m \u001B[38;5;66;03m# 计算损失\u001B[39;00m\n\u001B[0;32m     32\u001B[0m loss \u001B[38;5;241m=\u001B[39m loss_fct(logits, labels)\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1736\u001B[0m, in \u001B[0;36mModule._wrapped_call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1734\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_compiled_call_impl(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)  \u001B[38;5;66;03m# type: ignore[misc]\u001B[39;00m\n\u001B[0;32m   1735\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m-> 1736\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_call_impl\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1747\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1742\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m   1743\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m   1744\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks\n\u001B[0;32m   1745\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m   1746\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1747\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m   1749\u001B[0m result \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[0;32m   1750\u001B[0m called_always_called_hooks \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mset\u001B[39m()\n",
      "Cell \u001B[1;32mIn[11], line 33\u001B[0m, in \u001B[0;36mCNN.forward\u001B[1;34m(self, x)\u001B[0m\n\u001B[0;32m     32\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21mforward\u001B[39m(\u001B[38;5;28mself\u001B[39m, x):\n\u001B[1;32m---> 33\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmodel\u001B[49m\u001B[43m(\u001B[49m\u001B[43mx\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1736\u001B[0m, in \u001B[0;36mModule._wrapped_call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1734\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_compiled_call_impl(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)  \u001B[38;5;66;03m# type: ignore[misc]\u001B[39;00m\n\u001B[0;32m   1735\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m-> 1736\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_call_impl\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1747\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1742\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m   1743\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m   1744\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks\n\u001B[0;32m   1745\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m   1746\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1747\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m   1749\u001B[0m result \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[0;32m   1750\u001B[0m called_always_called_hooks \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mset\u001B[39m()\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\container.py:250\u001B[0m, in \u001B[0;36mSequential.forward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m    248\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21mforward\u001B[39m(\u001B[38;5;28mself\u001B[39m, \u001B[38;5;28minput\u001B[39m):\n\u001B[0;32m    249\u001B[0m     \u001B[38;5;28;01mfor\u001B[39;00m module \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28mself\u001B[39m:\n\u001B[1;32m--> 250\u001B[0m         \u001B[38;5;28minput\u001B[39m \u001B[38;5;241m=\u001B[39m \u001B[43mmodule\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m    251\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28minput\u001B[39m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1736\u001B[0m, in \u001B[0;36mModule._wrapped_call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1734\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_compiled_call_impl(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)  \u001B[38;5;66;03m# type: ignore[misc]\u001B[39;00m\n\u001B[0;32m   1735\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m-> 1736\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_call_impl\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1747\u001B[0m, in \u001B[0;36mModule._call_impl\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m   1742\u001B[0m \u001B[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001B[39;00m\n\u001B[0;32m   1743\u001B[0m \u001B[38;5;66;03m# this function, and just call forward.\u001B[39;00m\n\u001B[0;32m   1744\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_forward_pre_hooks\n\u001B[0;32m   1745\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_backward_pre_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_backward_hooks\n\u001B[0;32m   1746\u001B[0m         \u001B[38;5;129;01mor\u001B[39;00m _global_forward_hooks \u001B[38;5;129;01mor\u001B[39;00m _global_forward_pre_hooks):\n\u001B[1;32m-> 1747\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mforward_call\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m   1749\u001B[0m result \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[0;32m   1750\u001B[0m called_always_called_hooks \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mset\u001B[39m()\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:554\u001B[0m, in \u001B[0;36mConv2d.forward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m    553\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21mforward\u001B[39m(\u001B[38;5;28mself\u001B[39m, \u001B[38;5;28minput\u001B[39m: Tensor) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Tensor:\n\u001B[1;32m--> 554\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_conv_forward\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mweight\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbias\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32m~\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:549\u001B[0m, in \u001B[0;36mConv2d._conv_forward\u001B[1;34m(self, input, weight, bias)\u001B[0m\n\u001B[0;32m    537\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpadding_mode \u001B[38;5;241m!=\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mzeros\u001B[39m\u001B[38;5;124m\"\u001B[39m:\n\u001B[0;32m    538\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m F\u001B[38;5;241m.\u001B[39mconv2d(\n\u001B[0;32m    539\u001B[0m         F\u001B[38;5;241m.\u001B[39mpad(\n\u001B[0;32m    540\u001B[0m             \u001B[38;5;28minput\u001B[39m, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_reversed_padding_repeated_twice, mode\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mpadding_mode\n\u001B[1;32m   (...)\u001B[0m\n\u001B[0;32m    547\u001B[0m         \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mgroups,\n\u001B[0;32m    548\u001B[0m     )\n\u001B[1;32m--> 549\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mF\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mconv2d\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m    550\u001B[0m \u001B[43m    \u001B[49m\u001B[38;5;28;43minput\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mweight\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mbias\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mstride\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mpadding\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mdilation\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mgroups\u001B[49m\n\u001B[0;32m    551\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m: "
     ]
    }
   ],
   "execution_count": 20
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"598.533293pt\" height=\"322.94714pt\" viewBox=\"0 0 598.533293 322.94714\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-04-20T20:23:26.624692</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M -0 322.94714 \n",
       "L 598.533293 322.94714 \n",
       "L 598.533293 0 \n",
       "L -0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 30.103125 285.39089 \n",
       "L 283.739489 285.39089 \n",
       "L 283.739489 8.19089 \n",
       "L 30.103125 8.19089 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 41.632051 285.39089 \n",
       "L 41.632051 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"mc33f94c6a2\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"41.632051\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(38.450801 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 74.407959 285.39089 \n",
       "L 74.407959 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"74.407959\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 2000 -->\n",
       "      <g transform=\"translate(61.682959 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 107.183867 285.39089 \n",
       "L 107.183867 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"107.183867\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 4000 -->\n",
       "      <g transform=\"translate(94.458867 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
       "L 825 1625 \n",
       "L 2419 1625 \n",
       "L 2419 4116 \n",
       "z\n",
       "M 2253 4666 \n",
       "L 3047 4666 \n",
       "L 3047 1625 \n",
       "L 3713 1625 \n",
       "L 3713 1100 \n",
       "L 3047 1100 \n",
       "L 3047 0 \n",
       "L 2419 0 \n",
       "L 2419 1100 \n",
       "L 313 1100 \n",
       "L 313 1709 \n",
       "L 2253 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 139.959774 285.39089 \n",
       "L 139.959774 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"139.959774\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 6000 -->\n",
       "      <g transform=\"translate(127.234774 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
       "Q 1688 2584 1439 2293 \n",
       "Q 1191 2003 1191 1497 \n",
       "Q 1191 994 1439 701 \n",
       "Q 1688 409 2113 409 \n",
       "Q 2538 409 2786 701 \n",
       "Q 3034 994 3034 1497 \n",
       "Q 3034 2003 2786 2293 \n",
       "Q 2538 2584 2113 2584 \n",
       "z\n",
       "M 3366 4563 \n",
       "L 3366 3988 \n",
       "Q 3128 4100 2886 4159 \n",
       "Q 2644 4219 2406 4219 \n",
       "Q 1781 4219 1451 3797 \n",
       "Q 1122 3375 1075 2522 \n",
       "Q 1259 2794 1537 2939 \n",
       "Q 1816 3084 2150 3084 \n",
       "Q 2853 3084 3261 2657 \n",
       "Q 3669 2231 3669 1497 \n",
       "Q 3669 778 3244 343 \n",
       "Q 2819 -91 2113 -91 \n",
       "Q 1303 -91 875 529 \n",
       "Q 447 1150 447 2328 \n",
       "Q 447 3434 972 4092 \n",
       "Q 1497 4750 2381 4750 \n",
       "Q 2619 4750 2861 4703 \n",
       "Q 3103 4656 3366 4563 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-36\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 172.735682 285.39089 \n",
       "L 172.735682 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"172.735682\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 8000 -->\n",
       "      <g transform=\"translate(160.010682 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
       "Q 1584 2216 1326 1975 \n",
       "Q 1069 1734 1069 1313 \n",
       "Q 1069 891 1326 650 \n",
       "Q 1584 409 2034 409 \n",
       "Q 2484 409 2743 651 \n",
       "Q 3003 894 3003 1313 \n",
       "Q 3003 1734 2745 1975 \n",
       "Q 2488 2216 2034 2216 \n",
       "z\n",
       "M 1403 2484 \n",
       "Q 997 2584 770 2862 \n",
       "Q 544 3141 544 3541 \n",
       "Q 544 4100 942 4425 \n",
       "Q 1341 4750 2034 4750 \n",
       "Q 2731 4750 3128 4425 \n",
       "Q 3525 4100 3525 3541 \n",
       "Q 3525 3141 3298 2862 \n",
       "Q 3072 2584 2669 2484 \n",
       "Q 3125 2378 3379 2068 \n",
       "Q 3634 1759 3634 1313 \n",
       "Q 3634 634 3220 271 \n",
       "Q 2806 -91 2034 -91 \n",
       "Q 1263 -91 848 271 \n",
       "Q 434 634 434 1313 \n",
       "Q 434 1759 690 2068 \n",
       "Q 947 2378 1403 2484 \n",
       "z\n",
       "M 1172 3481 \n",
       "Q 1172 3119 1398 2916 \n",
       "Q 1625 2713 2034 2713 \n",
       "Q 2441 2713 2670 2916 \n",
       "Q 2900 3119 2900 3481 \n",
       "Q 2900 3844 2670 4047 \n",
       "Q 2441 4250 2034 4250 \n",
       "Q 1625 4250 1398 4047 \n",
       "Q 1172 3844 1172 3481 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-38\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 205.51159 285.39089 \n",
       "L 205.51159 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"205.51159\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 10000 -->\n",
       "      <g transform=\"translate(189.60534 299.989328) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 238.287498 285.39089 \n",
       "L 238.287498 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"238.287498\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 12000 -->\n",
       "      <g transform=\"translate(222.381248 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_8\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 271.063406 285.39089 \n",
       "L 271.063406 8.19089 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"271.063406\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 14000 -->\n",
       "      <g transform=\"translate(255.157156 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-34\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_9\">\n",
       "     <!-- step -->\n",
       "     <g transform=\"translate(146.105682 313.667453) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
       "L 2834 2853 \n",
       "Q 2591 2978 2328 3040 \n",
       "Q 2066 3103 1784 3103 \n",
       "Q 1356 3103 1142 2972 \n",
       "Q 928 2841 928 2578 \n",
       "Q 928 2378 1081 2264 \n",
       "Q 1234 2150 1697 2047 \n",
       "L 1894 2003 \n",
       "Q 2506 1872 2764 1633 \n",
       "Q 3022 1394 3022 966 \n",
       "Q 3022 478 2636 193 \n",
       "Q 2250 -91 1575 -91 \n",
       "Q 1294 -91 989 -36 \n",
       "Q 684 19 347 128 \n",
       "L 347 722 \n",
       "Q 666 556 975 473 \n",
       "Q 1284 391 1588 391 \n",
       "Q 1994 391 2212 530 \n",
       "Q 2431 669 2431 922 \n",
       "Q 2431 1156 2273 1281 \n",
       "Q 2116 1406 1581 1522 \n",
       "L 1381 1569 \n",
       "Q 847 1681 609 1914 \n",
       "Q 372 2147 372 2553 \n",
       "Q 372 3047 722 3315 \n",
       "Q 1072 3584 1716 3584 \n",
       "Q 2034 3584 2315 3537 \n",
       "Q 2597 3491 2834 3397 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
       "L 3597 1613 \n",
       "L 953 1613 \n",
       "Q 991 1019 1311 708 \n",
       "Q 1631 397 2203 397 \n",
       "Q 2534 397 2845 478 \n",
       "Q 3156 559 3463 722 \n",
       "L 3463 178 \n",
       "Q 3153 47 2828 -22 \n",
       "Q 2503 -91 2169 -91 \n",
       "Q 1331 -91 842 396 \n",
       "Q 353 884 353 1716 \n",
       "Q 353 2575 817 3079 \n",
       "Q 1281 3584 2069 3584 \n",
       "Q 2775 3584 3186 3129 \n",
       "Q 3597 2675 3597 1894 \n",
       "z\n",
       "M 3022 2063 \n",
       "Q 3016 2534 2758 2815 \n",
       "Q 2500 3097 2075 3097 \n",
       "Q 1594 3097 1305 2825 \n",
       "Q 1016 2553 972 2059 \n",
       "L 3022 2063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
       "L 1159 -1331 \n",
       "L 581 -1331 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2969 \n",
       "Q 1341 3281 1617 3432 \n",
       "Q 1894 3584 2278 3584 \n",
       "Q 2916 3584 3314 3078 \n",
       "Q 3713 2572 3713 1747 \n",
       "Q 3713 922 3314 415 \n",
       "Q 2916 -91 2278 -91 \n",
       "Q 1894 -91 1617 61 \n",
       "Q 1341 213 1159 525 \n",
       "z\n",
       "M 3116 1747 \n",
       "Q 3116 2381 2855 2742 \n",
       "Q 2594 3103 2138 3103 \n",
       "Q 1681 3103 1420 2742 \n",
       "Q 1159 2381 1159 1747 \n",
       "Q 1159 1113 1420 752 \n",
       "Q 1681 391 2138 391 \n",
       "Q 2594 391 2855 752 \n",
       "Q 3116 1113 3116 1747 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-74\" x=\"52.099609\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-65\" x=\"91.308594\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-70\" x=\"152.832031\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 30.103125 276.6997 \n",
       "L 283.739489 276.6997 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <defs>\n",
       "       <path id=\"m2ed9862671\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"276.6997\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(7.2 280.498919) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 30.103125 238.742488 \n",
       "L 283.739489 238.742488 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"238.742488\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(7.2 242.541707) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 30.103125 200.785277 \n",
       "L 283.739489 200.785277 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"200.785277\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(7.2 204.584495) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path d=\"M 30.103125 162.828065 \n",
       "L 283.739489 162.828065 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"162.828065\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(7.2 166.627284) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path d=\"M 30.103125 124.870853 \n",
       "L 283.739489 124.870853 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"124.870853\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(7.2 128.670072) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path d=\"M 30.103125 86.913642 \n",
       "L 283.739489 86.913642 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"86.913642\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 2.5 -->\n",
       "      <g transform=\"translate(7.2 90.712861) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <path d=\"M 30.103125 48.95643 \n",
       "L 283.739489 48.95643 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"48.95643\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_16\">\n",
       "      <!-- 3.0 -->\n",
       "      <g transform=\"translate(7.2 52.755649) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <path d=\"M 30.103125 10.999219 \n",
       "L 283.739489 10.999219 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"30.103125\" y=\"10.999219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_17\">\n",
       "      <!-- 3.5 -->\n",
       "      <g transform=\"translate(7.2 14.798438) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_33\">\n",
       "    <path d=\"M 41.632051 43.193235 \n",
       "L 41.79593 20.79089 \n",
       "L 41.95981 41.397864 \n",
       "L 42.451448 134.33708 \n",
       "L 42.615328 122.848335 \n",
       "L 42.779207 139.157178 \n",
       "L 42.943087 131.009395 \n",
       "L 43.106966 140.527783 \n",
       "L 43.270846 135.12787 \n",
       "L 43.434726 160.924306 \n",
       "L 43.926364 145.48999 \n",
       "L 44.090244 153.079289 \n",
       "L 44.254123 155.072695 \n",
       "L 44.418003 150.458296 \n",
       "L 44.745762 169.237211 \n",
       "L 44.909641 160.579367 \n",
       "L 45.073521 160.873691 \n",
       "L 45.40128 138.291791 \n",
       "L 45.56516 164.433998 \n",
       "L 45.729039 143.10456 \n",
       "L 45.892919 153.755465 \n",
       "L 46.056798 145.578749 \n",
       "L 46.220678 168.383398 \n",
       "L 46.384557 166.127605 \n",
       "L 46.548437 168.64869 \n",
       "L 46.712316 167.578083 \n",
       "L 46.876196 167.485179 \n",
       "L 47.040075 177.93604 \n",
       "L 47.367835 155.743477 \n",
       "L 47.695594 166.984296 \n",
       "L 47.859473 145.690667 \n",
       "L 48.023353 149.386829 \n",
       "L 48.351112 170.817859 \n",
       "L 48.514991 139.822757 \n",
       "L 48.678871 175.950453 \n",
       "L 48.84275 175.973412 \n",
       "L 49.00663 176.935839 \n",
       "L 49.170509 188.747631 \n",
       "L 49.334389 157.86585 \n",
       "L 49.662148 178.102373 \n",
       "L 49.826028 166.457322 \n",
       "L 49.989907 171.986122 \n",
       "L 50.153787 171.199386 \n",
       "L 50.317666 184.871878 \n",
       "L 50.481546 138.730331 \n",
       "L 50.645425 184.241105 \n",
       "L 50.973184 172.960205 \n",
       "L 51.137064 177.35951 \n",
       "L 51.300943 153.236835 \n",
       "L 51.464823 173.47849 \n",
       "L 51.628703 172.564298 \n",
       "L 51.792582 176.593589 \n",
       "L 51.956462 176.045294 \n",
       "L 52.120341 166.750741 \n",
       "L 52.284221 182.789089 \n",
       "L 52.4481 167.623503 \n",
       "L 52.61198 169.149284 \n",
       "L 52.775859 207.256752 \n",
       "L 52.939739 169.831631 \n",
       "L 53.267498 178.931734 \n",
       "L 53.431377 178.526796 \n",
       "L 53.595257 175.496167 \n",
       "L 53.923016 191.815508 \n",
       "L 54.086896 185.371422 \n",
       "L 54.250775 186.376871 \n",
       "L 54.414655 175.252468 \n",
       "L 54.578534 178.518379 \n",
       "L 54.742414 196.750095 \n",
       "L 54.906293 179.671493 \n",
       "L 55.234052 192.08918 \n",
       "L 55.397932 187.334629 \n",
       "L 55.561811 176.049928 \n",
       "L 55.889571 195.482385 \n",
       "L 56.21733 170.800873 \n",
       "L 56.381209 178.685455 \n",
       "L 56.545089 181.161662 \n",
       "L 56.708968 193.506491 \n",
       "L 56.872848 175.822671 \n",
       "L 57.200607 191.777183 \n",
       "L 57.528366 186.750886 \n",
       "L 57.692246 190.951071 \n",
       "L 57.856125 188.665985 \n",
       "L 58.020005 192.600887 \n",
       "L 58.347764 169.319825 \n",
       "L 58.675523 192.948631 \n",
       "L 58.839402 179.215949 \n",
       "L 59.003282 199.485151 \n",
       "L 59.167161 181.62146 \n",
       "L 59.331041 199.084901 \n",
       "L 59.49492 176.036344 \n",
       "L 59.82268 194.481452 \n",
       "L 59.986559 183.516133 \n",
       "L 60.150439 194.035998 \n",
       "L 60.314318 170.210108 \n",
       "L 60.478198 186.969636 \n",
       "L 60.642077 190.177937 \n",
       "L 60.805957 176.774329 \n",
       "L 60.969836 199.592507 \n",
       "L 61.133716 196.927867 \n",
       "L 61.297595 209.923021 \n",
       "L 61.461475 179.95321 \n",
       "L 61.625354 183.052978 \n",
       "L 61.789234 182.927033 \n",
       "L 61.953114 166.42382 \n",
       "L 62.116993 185.867617 \n",
       "L 62.280873 188.670899 \n",
       "L 62.444752 211.351788 \n",
       "L 62.608632 200.19615 \n",
       "L 62.772511 212.518893 \n",
       "L 62.936391 190.436062 \n",
       "L 63.10027 201.573728 \n",
       "L 63.26415 195.395399 \n",
       "L 63.428029 196.378442 \n",
       "L 63.591909 195.290314 \n",
       "L 63.755788 189.709959 \n",
       "L 63.919668 208.283685 \n",
       "L 64.083548 171.65455 \n",
       "L 64.247427 208.614651 \n",
       "L 64.411307 211.822613 \n",
       "L 64.575186 203.771833 \n",
       "L 64.739066 201.646415 \n",
       "L 64.902945 190.36294 \n",
       "L 65.066825 195.552113 \n",
       "L 65.230704 196.306804 \n",
       "L 65.558463 201.136025 \n",
       "L 65.722343 196.873506 \n",
       "L 65.886222 205.42135 \n",
       "L 66.213982 196.809823 \n",
       "L 66.377861 192.909373 \n",
       "L 66.541741 208.671081 \n",
       "L 66.70562 192.950586 \n",
       "L 66.8695 193.461324 \n",
       "L 67.033379 192.512643 \n",
       "L 67.197259 197.733472 \n",
       "L 67.361138 209.686747 \n",
       "L 67.688897 193.919302 \n",
       "L 68.016657 210.975669 \n",
       "L 68.180536 200.75972 \n",
       "L 68.344416 199.369297 \n",
       "L 68.508295 212.590688 \n",
       "L 68.999934 194.985294 \n",
       "L 69.163813 218.405214 \n",
       "L 69.327693 187.97275 \n",
       "L 69.491572 206.778941 \n",
       "L 69.655452 190.383248 \n",
       "L 69.819331 208.100583 \n",
       "L 69.983211 205.607588 \n",
       "L 70.147091 205.279613 \n",
       "L 70.47485 177.059304 \n",
       "L 70.638729 210.418397 \n",
       "L 70.802609 210.328113 \n",
       "L 70.966488 200.636608 \n",
       "L 71.130368 200.960316 \n",
       "L 71.294247 185.669528 \n",
       "L 71.949765 207.596333 \n",
       "L 72.113645 198.382345 \n",
       "L 72.277525 212.841071 \n",
       "L 72.441404 174.979556 \n",
       "L 72.605284 204.190812 \n",
       "L 72.769163 201.756744 \n",
       "L 72.933043 205.812184 \n",
       "L 73.096922 219.213547 \n",
       "L 73.260802 206.894094 \n",
       "L 73.424681 210.972954 \n",
       "L 73.588561 201.833775 \n",
       "L 73.75244 206.849737 \n",
       "L 73.91632 223.945353 \n",
       "L 74.244079 188.444339 \n",
       "L 74.407959 205.385151 \n",
       "L 74.571838 198.96463 \n",
       "L 74.735718 218.193243 \n",
       "L 74.899597 201.422403 \n",
       "L 75.227356 216.616721 \n",
       "L 75.391236 192.875726 \n",
       "L 75.555115 199.012331 \n",
       "L 75.718995 189.373255 \n",
       "L 75.882874 207.685952 \n",
       "L 76.046754 209.725213 \n",
       "L 76.210634 208.092596 \n",
       "L 76.374513 209.014779 \n",
       "L 76.538393 213.56021 \n",
       "L 76.702272 228.650946 \n",
       "L 76.866152 217.281729 \n",
       "L 77.030031 216.934836 \n",
       "L 77.193911 202.734868 \n",
       "L 77.35779 209.367745 \n",
       "L 77.52167 208.100736 \n",
       "L 77.685549 213.190268 \n",
       "L 77.849429 214.762482 \n",
       "L 78.013308 194.653677 \n",
       "L 78.341068 209.400568 \n",
       "L 78.504947 197.982221 \n",
       "L 78.668827 218.418372 \n",
       "L 78.832706 204.713663 \n",
       "L 78.996586 206.608902 \n",
       "L 79.160465 213.420926 \n",
       "L 79.324345 211.629103 \n",
       "L 79.652104 219.679707 \n",
       "L 79.979863 204.401819 \n",
       "L 80.143742 224.856857 \n",
       "L 80.471502 211.353969 \n",
       "L 80.635381 212.621299 \n",
       "L 80.799261 218.387454 \n",
       "L 80.96314 215.364713 \n",
       "L 81.12702 218.504236 \n",
       "L 81.454779 206.510323 \n",
       "L 81.782538 193.194973 \n",
       "L 81.946417 220.654183 \n",
       "L 82.110297 201.548515 \n",
       "L 82.274176 200.730381 \n",
       "L 82.765815 243.12524 \n",
       "L 82.929695 204.707808 \n",
       "L 83.093574 216.743335 \n",
       "L 83.257454 197.307367 \n",
       "L 83.421333 230.371227 \n",
       "L 83.585213 222.124796 \n",
       "L 83.749092 219.849361 \n",
       "L 83.912972 220.163626 \n",
       "L 84.076851 218.166818 \n",
       "L 84.240731 202.210963 \n",
       "L 84.40461 216.238909 \n",
       "L 84.56849 216.540129 \n",
       "L 84.73237 203.158489 \n",
       "L 84.896249 222.934066 \n",
       "L 85.060129 205.480277 \n",
       "L 85.224008 201.523493 \n",
       "L 85.387888 216.146639 \n",
       "L 85.551767 212.429789 \n",
       "L 85.715647 199.873166 \n",
       "L 85.879526 205.387807 \n",
       "L 86.043406 216.334388 \n",
       "L 86.207285 236.996248 \n",
       "L 86.371165 211.37277 \n",
       "L 86.535045 210.900597 \n",
       "L 86.698924 221.844192 \n",
       "L 86.862804 223.224865 \n",
       "L 87.026683 204.256214 \n",
       "L 87.190563 212.109692 \n",
       "L 87.354442 226.688042 \n",
       "L 87.518322 228.847532 \n",
       "L 87.682201 233.114124 \n",
       "L 87.846081 210.097966 \n",
       "L 88.00996 228.547268 \n",
       "L 88.17384 215.7609 \n",
       "L 88.337719 221.266912 \n",
       "L 88.501599 203.068327 \n",
       "L 88.665479 210.477678 \n",
       "L 88.829358 204.815748 \n",
       "L 88.993238 211.476756 \n",
       "L 89.157117 229.811986 \n",
       "L 89.320997 226.463867 \n",
       "L 89.484876 219.740426 \n",
       "L 89.648756 231.783229 \n",
       "L 89.812635 194.768454 \n",
       "L 90.140394 225.895754 \n",
       "L 90.304274 199.862514 \n",
       "L 90.632033 227.402136 \n",
       "L 90.795913 233.21715 \n",
       "L 91.123672 206.39993 \n",
       "L 91.287551 220.209399 \n",
       "L 91.451431 222.506549 \n",
       "L 91.61531 220.106717 \n",
       "L 91.77919 222.540359 \n",
       "L 91.943069 210.602129 \n",
       "L 92.270828 230.37548 \n",
       "L 92.434708 200.421904 \n",
       "L 92.598587 235.204628 \n",
       "L 92.762467 226.502025 \n",
       "L 92.926347 207.554189 \n",
       "L 93.090226 211.314363 \n",
       "L 93.417985 222.00658 \n",
       "L 93.581865 200.503107 \n",
       "L 93.745744 236.944027 \n",
       "L 93.909624 217.927756 \n",
       "L 94.073503 236.148707 \n",
       "L 94.237383 224.653193 \n",
       "L 94.401262 229.335244 \n",
       "L 94.565142 203.979148 \n",
       "L 94.729021 217.976896 \n",
       "L 94.892901 212.351052 \n",
       "L 95.056781 231.641819 \n",
       "L 95.22066 231.216116 \n",
       "L 95.548419 220.18344 \n",
       "L 95.712299 219.703548 \n",
       "L 95.876178 196.985496 \n",
       "L 96.040058 218.38092 \n",
       "L 96.203937 209.99631 \n",
       "L 96.531696 225.050254 \n",
       "L 96.695576 205.102859 \n",
       "L 97.023335 217.881603 \n",
       "L 97.187215 231.279369 \n",
       "L 97.351094 204.769708 \n",
       "L 97.514974 224.370689 \n",
       "L 97.678853 220.408615 \n",
       "L 97.842733 222.588051 \n",
       "L 98.006612 209.026119 \n",
       "L 98.334371 239.457494 \n",
       "L 98.498251 225.810411 \n",
       "L 98.66213 224.479484 \n",
       "L 98.82601 229.173086 \n",
       "L 98.98989 242.561864 \n",
       "L 99.153769 221.138071 \n",
       "L 99.481528 237.68918 \n",
       "L 99.809287 215.261062 \n",
       "L 99.973167 222.892895 \n",
       "L 100.137046 222.100113 \n",
       "L 100.300926 234.560679 \n",
       "L 100.464805 221.802451 \n",
       "L 100.628685 226.823557 \n",
       "L 100.792564 220.514542 \n",
       "L 100.956444 205.213238 \n",
       "L 101.120324 226.153616 \n",
       "L 101.284203 219.953216 \n",
       "L 101.448083 204.620713 \n",
       "L 101.611962 227.24902 \n",
       "L 101.775842 230.300467 \n",
       "L 101.939721 244.35078 \n",
       "L 102.103601 232.776163 \n",
       "L 102.26748 238.761364 \n",
       "L 102.43136 216.722779 \n",
       "L 102.759119 243.097738 \n",
       "L 102.922998 228.23465 \n",
       "L 103.086878 201.705102 \n",
       "L 103.414637 246.301297 \n",
       "L 103.578517 226.466781 \n",
       "L 103.742396 233.268136 \n",
       "L 103.906276 233.918638 \n",
       "L 104.234035 227.057216 \n",
       "L 104.397914 228.545942 \n",
       "L 104.561794 223.106495 \n",
       "L 104.725673 212.444468 \n",
       "L 104.889553 221.359581 \n",
       "L 105.053432 220.707337 \n",
       "L 105.217312 205.752329 \n",
       "L 105.381192 236.718961 \n",
       "L 105.708951 209.140896 \n",
       "L 106.200589 241.169293 \n",
       "L 106.364469 228.761619 \n",
       "L 106.528348 244.13247 \n",
       "L 106.692228 244.280536 \n",
       "L 106.856107 215.814388 \n",
       "L 107.019987 212.949663 \n",
       "L 107.347746 242.059212 \n",
       "L 107.511626 243.15059 \n",
       "L 107.675505 220.189617 \n",
       "L 107.839385 246.235815 \n",
       "L 108.003264 235.740529 \n",
       "L 108.167144 236.116599 \n",
       "L 108.331023 227.257196 \n",
       "L 108.494903 242.458062 \n",
       "L 108.658782 211.591108 \n",
       "L 108.822662 240.760704 \n",
       "L 108.986541 225.751443 \n",
       "L 109.150421 246.290718 \n",
       "L 109.314301 220.65422 \n",
       "L 109.47818 238.894514 \n",
       "L 109.805939 218.437666 \n",
       "L 109.969819 242.697668 \n",
       "L 110.133698 235.32408 \n",
       "L 110.297578 221.847265 \n",
       "L 110.461457 231.240573 \n",
       "L 110.625337 230.207526 \n",
       "L 110.789216 223.536397 \n",
       "L 110.953096 227.625474 \n",
       "L 111.116975 245.532038 \n",
       "L 111.280855 231.707497 \n",
       "L 111.444735 228.849944 \n",
       "L 111.608614 234.493317 \n",
       "L 111.936373 226.317113 \n",
       "L 112.100253 224.374073 \n",
       "L 112.264132 211.017791 \n",
       "L 112.428012 233.136201 \n",
       "L 112.755771 237.02137 \n",
       "L 112.91965 229.280633 \n",
       "L 113.08353 252.855566 \n",
       "L 113.411289 211.241197 \n",
       "L 113.575169 239.064599 \n",
       "L 113.739048 235.440875 \n",
       "L 113.902928 240.570284 \n",
       "L 114.066807 231.981305 \n",
       "L 114.230687 211.282603 \n",
       "L 114.558446 227.020257 \n",
       "L 114.722325 228.504313 \n",
       "L 114.886205 232.931519 \n",
       "L 115.050084 231.518797 \n",
       "L 115.213964 208.748727 \n",
       "L 115.377843 238.340894 \n",
       "L 115.541723 230.136427 \n",
       "L 115.705603 249.463223 \n",
       "L 115.869482 247.535258 \n",
       "L 116.033362 238.150108 \n",
       "L 116.197241 242.364065 \n",
       "L 116.525 230.914955 \n",
       "L 116.68888 234.007737 \n",
       "L 117.016639 228.064041 \n",
       "L 117.180518 214.915051 \n",
       "L 117.344398 231.130909 \n",
       "L 117.508278 230.722088 \n",
       "L 117.672157 225.881347 \n",
       "L 117.836037 233.846897 \n",
       "L 117.999916 227.358661 \n",
       "L 118.163796 247.050601 \n",
       "L 118.327675 238.264845 \n",
       "L 118.491555 219.89409 \n",
       "L 118.655434 233.733997 \n",
       "L 118.819314 234.455096 \n",
       "L 118.983193 218.061972 \n",
       "L 119.147073 238.961953 \n",
       "L 119.310952 231.848279 \n",
       "L 119.474832 250.416973 \n",
       "L 119.966471 228.40869 \n",
       "L 120.13035 209.955573 \n",
       "L 120.29423 237.345006 \n",
       "L 120.458109 222.992514 \n",
       "L 120.621989 243.437703 \n",
       "L 120.785868 245.714301 \n",
       "L 120.949748 232.688883 \n",
       "L 121.113627 238.230515 \n",
       "L 121.277507 220.36662 \n",
       "L 121.441386 185.141424 \n",
       "L 121.605266 239.572437 \n",
       "L 121.769146 235.011372 \n",
       "L 121.933025 222.973921 \n",
       "L 122.096905 247.169806 \n",
       "L 122.260784 239.974651 \n",
       "L 122.424664 214.641252 \n",
       "L 122.752423 237.715799 \n",
       "L 122.916302 236.7833 \n",
       "L 123.080182 238.686443 \n",
       "L 123.244061 224.647207 \n",
       "L 123.407941 226.461723 \n",
       "L 123.7357 236.821218 \n",
       "L 123.89958 235.530282 \n",
       "L 124.063459 228.550453 \n",
       "L 124.227339 229.722811 \n",
       "L 124.391218 231.960635 \n",
       "L 124.555098 229.519414 \n",
       "L 124.718977 237.957037 \n",
       "L 124.882857 238.289193 \n",
       "L 125.046736 220.852612 \n",
       "L 125.210616 234.717143 \n",
       "L 125.374495 226.329131 \n",
       "L 125.538375 244.116517 \n",
       "L 125.702255 242.3983 \n",
       "L 125.866134 225.351075 \n",
       "L 126.030014 244.744886 \n",
       "L 126.193893 217.475809 \n",
       "L 126.521652 243.483633 \n",
       "L 126.685532 224.444679 \n",
       "L 126.849411 233.508171 \n",
       "L 127.013291 258.83953 \n",
       "L 127.34105 233.35062 \n",
       "L 127.504929 241.453087 \n",
       "L 127.668809 232.523106 \n",
       "L 127.832689 249.057117 \n",
       "L 128.160448 232.29856 \n",
       "L 128.324327 223.922443 \n",
       "L 128.488207 240.317711 \n",
       "L 128.652086 227.814821 \n",
       "L 128.815966 243.954041 \n",
       "L 129.143725 232.539264 \n",
       "L 129.307604 223.1873 \n",
       "L 129.471484 247.905848 \n",
       "L 129.635363 238.988568 \n",
       "L 129.799243 247.67459 \n",
       "L 129.963123 212.327948 \n",
       "L 130.290882 233.104631 \n",
       "L 130.454761 215.035498 \n",
       "L 130.618641 247.920101 \n",
       "L 130.78252 232.163996 \n",
       "L 131.110279 244.258534 \n",
       "L 131.438038 218.056357 \n",
       "L 131.929677 245.838936 \n",
       "L 132.093557 230.165029 \n",
       "L 132.257436 227.9481 \n",
       "L 132.421316 211.634388 \n",
       "L 132.912954 253.077752 \n",
       "L 133.076834 234.917029 \n",
       "L 133.240713 237.495869 \n",
       "L 133.568472 223.317679 \n",
       "L 133.732352 229.107015 \n",
       "L 133.896231 221.706334 \n",
       "L 134.060111 242.440505 \n",
       "L 134.223991 245.479351 \n",
       "L 134.38787 240.065444 \n",
       "L 134.715629 246.507623 \n",
       "L 134.879509 244.575303 \n",
       "L 135.043388 227.238576 \n",
       "L 135.371147 250.712173 \n",
       "L 135.535027 237.076352 \n",
       "L 135.698906 240.659618 \n",
       "L 135.862786 226.423524 \n",
       "L 136.026666 233.431556 \n",
       "L 136.190545 233.778621 \n",
       "L 136.354425 228.504653 \n",
       "L 136.518304 239.548468 \n",
       "L 136.682184 234.64899 \n",
       "L 136.846063 235.649408 \n",
       "L 137.009943 232.277506 \n",
       "L 137.173822 215.631561 \n",
       "L 137.337702 235.304877 \n",
       "L 137.501581 233.911702 \n",
       "L 137.665461 226.140141 \n",
       "L 137.82934 244.292896 \n",
       "L 137.99322 243.462877 \n",
       "L 138.1571 240.377942 \n",
       "L 138.320979 234.036542 \n",
       "L 138.484859 251.599186 \n",
       "L 138.648738 221.838496 \n",
       "L 138.976497 232.715657 \n",
       "L 139.140377 239.493899 \n",
       "L 139.304256 240.091625 \n",
       "L 139.468136 234.595642 \n",
       "L 139.632015 245.602924 \n",
       "L 139.795895 241.965183 \n",
       "L 139.959774 245.228466 \n",
       "L 140.123654 214.566872 \n",
       "L 140.287534 237.756835 \n",
       "L 140.451413 219.755959 \n",
       "L 140.615293 219.89323 \n",
       "L 140.943052 249.501089 \n",
       "L 141.106931 231.318142 \n",
       "L 141.270811 237.851518 \n",
       "L 141.43469 249.263804 \n",
       "L 141.59857 233.523239 \n",
       "L 141.762449 234.30059 \n",
       "L 141.926329 239.550274 \n",
       "L 142.090208 250.910391 \n",
       "L 142.254088 231.614018 \n",
       "L 142.417968 238.422853 \n",
       "L 142.581847 237.955472 \n",
       "L 142.909606 229.221493 \n",
       "L 143.073486 251.808571 \n",
       "L 143.237365 244.612364 \n",
       "L 143.401245 230.83725 \n",
       "L 143.729004 245.33177 \n",
       "L 143.892883 229.472591 \n",
       "L 144.056763 232.756276 \n",
       "L 144.220642 217.579315 \n",
       "L 144.384522 244.237571 \n",
       "L 144.548402 230.47447 \n",
       "L 144.712281 253.148407 \n",
       "L 145.04004 235.92175 \n",
       "L 145.20392 246.884788 \n",
       "L 145.367799 236.097097 \n",
       "L 145.531679 241.695468 \n",
       "L 145.695558 225.463902 \n",
       "L 146.023317 241.968194 \n",
       "L 146.187197 237.199391 \n",
       "L 146.351077 240.825746 \n",
       "L 146.514956 236.540976 \n",
       "L 146.678836 248.328254 \n",
       "L 146.842715 236.267937 \n",
       "L 147.006595 238.712466 \n",
       "L 147.170474 235.488536 \n",
       "L 147.334354 238.58482 \n",
       "L 147.498233 258.684631 \n",
       "L 147.662113 236.202978 \n",
       "L 147.825992 248.832868 \n",
       "L 147.989872 242.834629 \n",
       "L 148.153751 241.545761 \n",
       "L 148.317631 242.568737 \n",
       "L 148.481511 239.619977 \n",
       "L 148.64539 242.002389 \n",
       "L 148.973149 220.844042 \n",
       "L 149.300908 240.854936 \n",
       "L 149.464788 232.765986 \n",
       "L 149.628667 247.987811 \n",
       "L 149.792547 227.438656 \n",
       "L 149.956426 233.928281 \n",
       "L 150.120306 250.678815 \n",
       "L 150.284185 226.705743 \n",
       "L 150.448065 219.951225 \n",
       "L 150.775824 240.589571 \n",
       "L 150.939704 237.046999 \n",
       "L 151.103583 230.256739 \n",
       "L 151.267463 242.765204 \n",
       "L 151.595222 222.916958 \n",
       "L 151.759101 233.723242 \n",
       "L 151.922981 233.691626 \n",
       "L 152.08686 229.303054 \n",
       "L 152.25074 230.541691 \n",
       "L 152.414619 246.1303 \n",
       "L 152.578499 226.014626 \n",
       "L 152.906258 243.506443 \n",
       "L 153.070138 225.389075 \n",
       "L 153.397897 245.347069 \n",
       "L 153.725656 242.181953 \n",
       "L 153.889535 230.642844 \n",
       "L 154.053415 237.250273 \n",
       "L 154.217294 250.385983 \n",
       "L 154.381174 240.606336 \n",
       "L 154.545053 240.175289 \n",
       "L 154.708933 240.377114 \n",
       "L 154.872813 254.182119 \n",
       "L 155.036692 227.320282 \n",
       "L 155.364451 250.107693 \n",
       "L 155.528331 229.871077 \n",
       "L 155.85609 248.038037 \n",
       "L 156.019969 250.784609 \n",
       "L 156.183849 243.681717 \n",
       "L 156.347728 246.592204 \n",
       "L 156.511608 253.320788 \n",
       "L 156.675488 246.167963 \n",
       "L 156.839367 223.046604 \n",
       "L 157.167126 252.274455 \n",
       "L 157.494885 239.292737 \n",
       "L 157.658765 248.143138 \n",
       "L 157.822644 248.385457 \n",
       "L 157.986524 257.770416 \n",
       "L 158.314283 249.703585 \n",
       "L 158.478162 252.132809 \n",
       "L 158.642042 261.630633 \n",
       "L 158.805922 233.238901 \n",
       "L 158.969801 234.491987 \n",
       "L 159.133681 232.822891 \n",
       "L 159.29756 243.604605 \n",
       "L 159.46144 245.669469 \n",
       "L 159.625319 242.578952 \n",
       "L 159.789199 229.155476 \n",
       "L 160.280837 257.596455 \n",
       "L 160.444717 237.47867 \n",
       "L 160.608596 247.494564 \n",
       "L 160.772476 249.360457 \n",
       "L 160.936356 237.192871 \n",
       "L 161.100235 238.645575 \n",
       "L 161.264115 242.01606 \n",
       "L 161.427994 240.416941 \n",
       "L 161.755753 235.330247 \n",
       "L 161.919633 255.065422 \n",
       "L 162.083512 256.916426 \n",
       "L 162.247392 233.900227 \n",
       "L 162.411271 246.870928 \n",
       "L 162.575151 234.733664 \n",
       "L 162.73903 237.354476 \n",
       "L 162.90291 250.346786 \n",
       "L 163.06679 232.782335 \n",
       "L 163.230669 248.746086 \n",
       "L 163.394549 247.033728 \n",
       "L 163.558428 234.418141 \n",
       "L 163.722308 232.878325 \n",
       "L 163.886187 239.473125 \n",
       "L 164.213946 243.801771 \n",
       "L 164.377826 245.837262 \n",
       "L 164.541705 234.382603 \n",
       "L 164.705585 253.394064 \n",
       "L 164.869464 247.508546 \n",
       "L 165.033344 246.711167 \n",
       "L 165.197224 246.732006 \n",
       "L 165.361103 246.003444 \n",
       "L 165.524983 233.809282 \n",
       "L 165.688862 239.292405 \n",
       "L 165.852742 224.355399 \n",
       "L 166.180501 256.312243 \n",
       "L 166.34438 248.955971 \n",
       "L 166.50826 227.476213 \n",
       "L 166.672139 241.72109 \n",
       "L 166.836019 230.911734 \n",
       "L 166.999899 259.644899 \n",
       "L 167.327658 239.236539 \n",
       "L 167.491537 248.406373 \n",
       "L 167.655417 237.465729 \n",
       "L 167.819296 241.130298 \n",
       "L 167.983176 226.868109 \n",
       "L 168.310935 250.770086 \n",
       "L 168.474814 233.618713 \n",
       "L 168.638694 234.241324 \n",
       "L 168.802573 249.925817 \n",
       "L 168.966453 247.850602 \n",
       "L 169.130333 250.936671 \n",
       "L 169.294212 244.395083 \n",
       "L 169.458092 243.597299 \n",
       "L 169.621971 248.628109 \n",
       "L 169.785851 240.777115 \n",
       "L 169.94973 240.752916 \n",
       "L 170.11361 243.59348 \n",
       "L 170.277489 251.476065 \n",
       "L 170.441369 248.170918 \n",
       "L 170.605248 241.203087 \n",
       "L 170.933007 257.625491 \n",
       "L 171.096887 256.919365 \n",
       "L 171.260767 260.814784 \n",
       "L 171.424646 254.750262 \n",
       "L 171.588526 240.981632 \n",
       "L 171.752405 245.825848 \n",
       "L 171.916285 245.506629 \n",
       "L 172.080164 232.941062 \n",
       "L 172.244044 237.811898 \n",
       "L 172.407923 236.697803 \n",
       "L 172.571803 250.146978 \n",
       "L 172.735682 238.051037 \n",
       "L 172.899562 246.716398 \n",
       "L 173.063441 247.567615 \n",
       "L 173.227321 252.435266 \n",
       "L 173.391201 241.872181 \n",
       "L 173.55508 238.572413 \n",
       "L 174.046719 249.229125 \n",
       "L 174.210598 238.380581 \n",
       "L 174.374478 251.779886 \n",
       "L 174.538357 245.834466 \n",
       "L 174.702237 251.991337 \n",
       "L 174.866116 247.345345 \n",
       "L 175.029996 262.897009 \n",
       "L 175.193875 242.10682 \n",
       "L 175.357755 248.998973 \n",
       "L 175.521635 244.296631 \n",
       "L 175.685514 214.22297 \n",
       "L 176.013273 251.560383 \n",
       "L 176.177153 236.15006 \n",
       "L 176.341032 235.899388 \n",
       "L 176.504912 247.340131 \n",
       "L 176.668791 243.21673 \n",
       "L 176.832671 249.057436 \n",
       "L 176.99655 248.493452 \n",
       "L 177.16043 246.268091 \n",
       "L 177.32431 255.17255 \n",
       "L 177.488189 232.222706 \n",
       "L 177.652069 234.054438 \n",
       "L 177.815948 258.055138 \n",
       "L 177.979828 243.322455 \n",
       "L 178.143707 240.831033 \n",
       "L 178.471466 230.655215 \n",
       "L 178.635346 250.127903 \n",
       "L 178.963105 242.914554 \n",
       "L 179.126984 243.404869 \n",
       "L 179.290864 250.872895 \n",
       "L 179.618623 224.386467 \n",
       "L 179.782503 253.468631 \n",
       "L 180.110262 234.801898 \n",
       "L 180.274141 254.289469 \n",
       "L 180.438021 231.156546 \n",
       "L 180.6019 250.324257 \n",
       "L 180.76578 244.870432 \n",
       "L 180.929659 243.679749 \n",
       "L 181.093539 257.187777 \n",
       "L 181.257418 252.460435 \n",
       "L 181.421298 252.092947 \n",
       "L 181.585178 254.415422 \n",
       "L 181.749057 231.461069 \n",
       "L 181.912937 259.1174 \n",
       "L 182.076816 242.38151 \n",
       "L 182.240696 246.193852 \n",
       "L 182.404575 260.143784 \n",
       "L 182.568455 245.089517 \n",
       "L 182.732334 256.515391 \n",
       "L 182.896214 245.789244 \n",
       "L 183.060093 257.983839 \n",
       "L 183.223973 235.49964 \n",
       "L 183.387852 230.734979 \n",
       "L 183.879491 262.490421 \n",
       "L 184.043371 258.528873 \n",
       "L 184.20725 240.679471 \n",
       "L 184.37113 247.80484 \n",
       "L 184.698889 239.462302 \n",
       "L 184.862768 241.647697 \n",
       "L 185.026648 239.310002 \n",
       "L 185.354407 255.220391 \n",
       "L 185.518287 234.26917 \n",
       "L 185.682166 241.661441 \n",
       "L 185.846046 259.855793 \n",
       "L 186.009925 254.343794 \n",
       "L 186.173805 220.577609 \n",
       "L 186.337684 249.074314 \n",
       "L 186.665443 242.649734 \n",
       "L 186.829323 246.391224 \n",
       "L 186.993202 244.257351 \n",
       "L 187.157082 247.26271 \n",
       "L 187.320961 217.612374 \n",
       "L 187.484841 247.250722 \n",
       "L 187.648721 247.552366 \n",
       "L 187.8126 239.461462 \n",
       "L 187.97648 253.081225 \n",
       "L 188.140359 253.77536 \n",
       "L 188.304239 236.21058 \n",
       "L 188.468118 250.198968 \n",
       "L 188.795877 232.318171 \n",
       "L 188.959757 238.661996 \n",
       "L 189.123636 249.522711 \n",
       "L 189.287516 238.997595 \n",
       "L 189.451395 240.027087 \n",
       "L 189.779155 246.251913 \n",
       "L 189.943034 241.963283 \n",
       "L 190.106914 255.529989 \n",
       "L 190.270793 238.486807 \n",
       "L 190.434673 243.637971 \n",
       "L 190.762432 238.195995 \n",
       "L 190.926311 255.567235 \n",
       "L 191.090191 258.213568 \n",
       "L 191.25407 215.301718 \n",
       "L 191.41795 252.465401 \n",
       "L 191.745709 243.073935 \n",
       "L 191.909589 241.177488 \n",
       "L 192.073468 256.214391 \n",
       "L 192.237348 234.439544 \n",
       "L 192.401227 262.963574 \n",
       "L 192.728986 238.461631 \n",
       "L 192.892866 247.358694 \n",
       "L 193.056745 263.768864 \n",
       "L 193.220625 249.423925 \n",
       "L 193.384504 253.41743 \n",
       "L 193.548384 243.138156 \n",
       "L 193.876143 251.500526 \n",
       "L 194.040023 246.754429 \n",
       "L 194.203902 245.578425 \n",
       "L 194.367782 240.927659 \n",
       "L 194.531661 258.368898 \n",
       "L 194.695541 254.168976 \n",
       "L 194.85942 244.606326 \n",
       "L 195.0233 248.429643 \n",
       "L 195.187179 257.426549 \n",
       "L 195.351059 258.847908 \n",
       "L 195.678818 234.07799 \n",
       "L 195.842698 238.58134 \n",
       "L 196.006577 255.369377 \n",
       "L 196.170457 255.785579 \n",
       "L 196.334336 250.611673 \n",
       "L 196.498216 255.913608 \n",
       "L 196.662095 241.494976 \n",
       "L 196.825975 263.685327 \n",
       "L 196.989854 242.750641 \n",
       "L 197.153734 244.548073 \n",
       "L 197.317613 253.176022 \n",
       "L 197.481493 248.695487 \n",
       "L 197.645372 249.751479 \n",
       "L 197.809252 255.95446 \n",
       "L 198.137011 245.777828 \n",
       "L 198.300891 260.447474 \n",
       "L 198.46477 246.770436 \n",
       "L 198.792529 255.189491 \n",
       "L 199.120288 228.366106 \n",
       "L 199.284168 237.650402 \n",
       "L 199.448047 261.479199 \n",
       "L 199.775806 249.38049 \n",
       "L 199.939686 220.719604 \n",
       "L 200.267445 261.717704 \n",
       "L 200.431325 251.197092 \n",
       "L 200.595204 253.254038 \n",
       "L 200.759084 259.638053 \n",
       "L 200.922963 247.850256 \n",
       "L 201.086843 248.62513 \n",
       "L 201.250722 259.621703 \n",
       "L 201.414602 230.80982 \n",
       "L 201.578481 257.099257 \n",
       "L 201.742361 249.539399 \n",
       "L 202.07012 256.836601 \n",
       "L 202.234 252.626199 \n",
       "L 202.397879 252.975008 \n",
       "L 202.889518 232.460156 \n",
       "L 203.053397 247.578516 \n",
       "L 203.217277 241.128212 \n",
       "L 203.545036 238.968681 \n",
       "L 203.708915 243.338881 \n",
       "L 204.036674 262.61693 \n",
       "L 204.200554 256.014741 \n",
       "L 204.364434 262.197904 \n",
       "L 204.528313 248.276603 \n",
       "L 204.692193 248.426948 \n",
       "L 204.856072 237.248622 \n",
       "L 205.183831 259.438314 \n",
       "L 205.347711 251.139357 \n",
       "L 205.51159 263.407634 \n",
       "L 206.003229 258.235576 \n",
       "L 206.167109 260.325977 \n",
       "L 206.330988 241.298586 \n",
       "L 206.658747 257.988426 \n",
       "L 206.822627 225.65757 \n",
       "L 206.986506 245.137905 \n",
       "L 207.150386 243.85984 \n",
       "L 207.314265 264.594524 \n",
       "L 207.478145 250.784977 \n",
       "L 207.642024 251.004998 \n",
       "L 207.805904 243.20123 \n",
       "L 207.969783 249.106149 \n",
       "L 208.133663 249.636127 \n",
       "L 208.461422 244.670416 \n",
       "L 208.625302 249.286079 \n",
       "L 208.953061 230.091573 \n",
       "L 209.11694 263.13716 \n",
       "L 209.28082 251.190087 \n",
       "L 209.444699 260.803805 \n",
       "L 209.608579 257.68568 \n",
       "L 209.772458 239.189881 \n",
       "L 209.936338 261.013705 \n",
       "L 210.100217 260.478198 \n",
       "L 210.264097 241.042027 \n",
       "L 210.427977 236.315937 \n",
       "L 210.591856 251.652808 \n",
       "L 210.755736 243.761538 \n",
       "L 210.919615 257.444687 \n",
       "L 211.083495 238.333039 \n",
       "L 211.247374 250.901196 \n",
       "L 211.411254 244.697757 \n",
       "L 211.575133 244.393567 \n",
       "L 211.739013 243.453952 \n",
       "L 211.902892 245.883544 \n",
       "L 212.066772 253.941146 \n",
       "L 212.230651 249.265104 \n",
       "L 212.394531 250.276861 \n",
       "L 212.558411 248.065412 \n",
       "L 212.72229 247.503955 \n",
       "L 212.88617 240.765296 \n",
       "L 213.050049 246.463766 \n",
       "L 213.213929 260.285114 \n",
       "L 213.377808 249.251082 \n",
       "L 213.541688 250.011318 \n",
       "L 213.705567 259.746849 \n",
       "L 213.869447 256.833696 \n",
       "L 214.033326 250.655435 \n",
       "L 214.197206 238.424423 \n",
       "L 214.524965 262.057037 \n",
       "L 214.688845 254.80499 \n",
       "L 215.016604 270.971299 \n",
       "L 215.180483 267.145966 \n",
       "L 215.344363 240.627399 \n",
       "L 215.508242 264.312719 \n",
       "L 215.672122 262.941383 \n",
       "L 215.836001 268.192454 \n",
       "L 216.32764 248.911994 \n",
       "L 216.49152 253.864388 \n",
       "L 216.655399 233.718454 \n",
       "L 216.983158 255.208188 \n",
       "L 217.147038 257.803324 \n",
       "L 217.310917 248.632614 \n",
       "L 217.474797 246.846845 \n",
       "L 217.802556 252.675839 \n",
       "L 217.966435 252.380406 \n",
       "L 218.130315 231.226722 \n",
       "L 218.294194 247.942108 \n",
       "L 218.458074 251.086215 \n",
       "L 218.621954 250.228832 \n",
       "L 218.785833 232.861796 \n",
       "L 218.949713 236.213766 \n",
       "L 219.277472 257.762295 \n",
       "L 219.441351 248.710754 \n",
       "L 219.605231 261.318021 \n",
       "L 219.76911 261.656372 \n",
       "L 219.93299 263.72853 \n",
       "L 220.096869 261.837604 \n",
       "L 220.260749 252.161358 \n",
       "L 220.424628 265.934627 \n",
       "L 220.588508 248.770497 \n",
       "L 220.752388 263.620053 \n",
       "L 220.916267 262.650099 \n",
       "L 221.080147 255.840916 \n",
       "L 221.244026 255.69337 \n",
       "L 221.407906 259.582237 \n",
       "L 221.571785 243.623118 \n",
       "L 221.735665 239.806525 \n",
       "L 221.899544 260.357265 \n",
       "L 222.063424 255.921341 \n",
       "L 222.227303 255.330339 \n",
       "L 222.391183 241.881561 \n",
       "L 222.555062 253.182507 \n",
       "L 222.882822 240.89444 \n",
       "L 223.046701 258.745625 \n",
       "L 223.210581 257.242921 \n",
       "L 223.37446 253.741826 \n",
       "L 223.53834 246.971864 \n",
       "L 223.702219 255.021137 \n",
       "L 223.866099 246.295166 \n",
       "L 224.029978 262.117334 \n",
       "L 224.193858 246.107292 \n",
       "L 224.357737 264.099222 \n",
       "L 224.521617 240.368974 \n",
       "L 224.685496 248.06305 \n",
       "L 224.849376 241.927102 \n",
       "L 225.013256 256.364113 \n",
       "L 225.177135 254.725723 \n",
       "L 225.504894 267.519359 \n",
       "L 225.668774 250.019755 \n",
       "L 225.832653 249.388454 \n",
       "L 226.160412 251.027372 \n",
       "L 226.324292 260.501326 \n",
       "L 226.488171 258.276673 \n",
       "L 226.652051 257.990652 \n",
       "L 226.815931 252.940398 \n",
       "L 226.97981 254.713766 \n",
       "L 227.14369 254.169424 \n",
       "L 227.307569 251.099751 \n",
       "L 227.471449 258.391781 \n",
       "L 227.635328 258.748938 \n",
       "L 227.799208 257.924476 \n",
       "L 227.963087 250.195305 \n",
       "L 228.290846 246.694767 \n",
       "L 228.454726 255.128768 \n",
       "L 228.618605 253.75176 \n",
       "L 228.782485 255.113159 \n",
       "L 228.946365 262.841991 \n",
       "L 229.274124 256.378543 \n",
       "L 229.438003 254.819288 \n",
       "L 229.601883 257.516349 \n",
       "L 229.929642 251.386421 \n",
       "L 230.093521 257.959165 \n",
       "L 230.257401 258.50419 \n",
       "L 230.42128 248.039962 \n",
       "L 230.58516 257.039092 \n",
       "L 230.749039 243.447948 \n",
       "L 230.912919 249.154675 \n",
       "L 231.076799 258.836445 \n",
       "L 231.240678 256.602297 \n",
       "L 231.404558 243.589603 \n",
       "L 231.568437 240.722939 \n",
       "L 231.896196 257.304104 \n",
       "L 232.223955 247.657259 \n",
       "L 232.551714 254.988011 \n",
       "L 232.715594 249.452379 \n",
       "L 232.879473 251.616148 \n",
       "L 233.043353 259.369145 \n",
       "L 233.207233 248.974573 \n",
       "L 233.534992 259.638194 \n",
       "L 233.698871 260.645616 \n",
       "L 233.862751 247.776584 \n",
       "L 234.02663 261.368687 \n",
       "L 234.19051 251.815626 \n",
       "L 234.518269 246.107559 \n",
       "L 234.682148 260.194128 \n",
       "L 234.846028 248.623225 \n",
       "L 235.009907 256.902566 \n",
       "L 235.173787 259.457049 \n",
       "L 235.337667 272.009517 \n",
       "L 235.501546 251.996308 \n",
       "L 235.665426 265.119514 \n",
       "L 235.993185 252.505636 \n",
       "L 236.157064 253.718844 \n",
       "L 236.320944 243.663903 \n",
       "L 236.484823 269.003822 \n",
       "L 236.648703 255.288144 \n",
       "L 236.812582 255.860282 \n",
       "L 236.976462 257.630701 \n",
       "L 237.140342 243.559089 \n",
       "L 237.304221 268.881343 \n",
       "L 237.63198 242.457297 \n",
       "L 237.79586 252.044622 \n",
       "L 238.123619 244.838498 \n",
       "L 238.451378 265.06855 \n",
       "L 238.615257 253.525176 \n",
       "L 238.779137 262.469636 \n",
       "L 238.943016 252.805756 \n",
       "L 239.106896 254.436341 \n",
       "L 239.270776 243.743409 \n",
       "L 239.434655 255.585371 \n",
       "L 239.598535 250.003764 \n",
       "L 239.762414 265.502855 \n",
       "L 239.926294 264.922788 \n",
       "L 240.090173 247.632802 \n",
       "L 240.254053 264.91617 \n",
       "L 240.417932 246.066077 \n",
       "L 240.581812 249.857 \n",
       "L 240.745691 251.026715 \n",
       "L 240.909571 238.764332 \n",
       "L 241.23733 249.667807 \n",
       "L 241.40121 259.081476 \n",
       "L 241.728969 250.695487 \n",
       "L 241.892848 256.145312 \n",
       "L 242.056728 255.005117 \n",
       "L 242.220607 245.984446 \n",
       "L 242.384487 265.687086 \n",
       "L 242.548366 235.497002 \n",
       "L 242.712246 237.988657 \n",
       "L 243.040005 260.064773 \n",
       "L 243.203884 262.152918 \n",
       "L 243.367764 245.999702 \n",
       "L 243.531644 262.749429 \n",
       "L 243.695523 255.314689 \n",
       "L 243.859403 259.966 \n",
       "L 244.023282 250.970494 \n",
       "L 244.351041 261.828431 \n",
       "L 244.514921 258.314615 \n",
       "L 244.6788 248.039385 \n",
       "L 244.84268 264.067064 \n",
       "L 245.006559 251.273109 \n",
       "L 245.170439 264.795402 \n",
       "L 245.334319 260.522162 \n",
       "L 245.498198 262.447113 \n",
       "L 245.662078 252.361094 \n",
       "L 245.825957 232.182593 \n",
       "L 245.989837 257.389578 \n",
       "L 246.317596 252.878303 \n",
       "L 246.481475 256.959132 \n",
       "L 246.645355 267.184188 \n",
       "L 246.809234 249.058219 \n",
       "L 246.973114 255.26126 \n",
       "L 247.136993 255.800079 \n",
       "L 247.300873 255.914603 \n",
       "L 247.628632 265.61923 \n",
       "L 248.120271 243.774135 \n",
       "L 248.28415 261.880418 \n",
       "L 248.44803 265.808387 \n",
       "L 248.611909 255.533636 \n",
       "L 248.775789 253.711249 \n",
       "L 249.103548 259.566338 \n",
       "L 249.267427 245.660057 \n",
       "L 249.595187 263.038096 \n",
       "L 249.759066 262.073959 \n",
       "L 249.922946 252.672938 \n",
       "L 250.086825 250.721523 \n",
       "L 250.250705 256.165083 \n",
       "L 250.414584 252.590446 \n",
       "L 250.578464 263.685665 \n",
       "L 250.742343 256.304562 \n",
       "L 250.906223 262.927015 \n",
       "L 251.070102 240.005404 \n",
       "L 251.233982 257.17149 \n",
       "L 251.397861 248.502995 \n",
       "L 251.725621 250.903133 \n",
       "L 251.8895 234.621868 \n",
       "L 252.217259 255.931524 \n",
       "L 252.381139 239.754716 \n",
       "L 252.545018 253.699826 \n",
       "L 252.708898 251.872062 \n",
       "L 253.036657 266.765951 \n",
       "L 253.200536 249.829222 \n",
       "L 253.528295 252.230867 \n",
       "L 253.692175 262.785561 \n",
       "L 253.856055 234.107343 \n",
       "L 254.019934 260.016066 \n",
       "L 254.183814 246.642297 \n",
       "L 254.347693 267.513516 \n",
       "L 254.511573 249.214854 \n",
       "L 254.675452 257.112642 \n",
       "L 254.839332 259.556753 \n",
       "L 255.003211 268.70178 \n",
       "L 255.49485 247.603488 \n",
       "L 255.822609 252.510473 \n",
       "L 255.986489 252.956058 \n",
       "L 256.150368 232.384157 \n",
       "L 256.314248 254.294374 \n",
       "L 256.478127 255.712159 \n",
       "L 256.805886 235.599843 \n",
       "L 257.133645 259.96138 \n",
       "L 257.297525 263.821557 \n",
       "L 257.461404 256.143568 \n",
       "L 257.625284 263.842994 \n",
       "L 257.789164 242.591142 \n",
       "L 257.953043 266.191904 \n",
       "L 258.116923 254.576247 \n",
       "L 258.280802 263.214487 \n",
       "L 258.444682 252.558102 \n",
       "L 258.608561 251.601039 \n",
       "L 258.772441 255.30011 \n",
       "L 258.93632 263.844976 \n",
       "L 259.1002 251.94834 \n",
       "L 259.264079 248.712158 \n",
       "L 259.591838 261.002039 \n",
       "L 259.755718 259.861118 \n",
       "L 259.919598 252.220652 \n",
       "L 260.083477 260.519898 \n",
       "L 260.411236 255.239575 \n",
       "L 260.575116 257.400829 \n",
       "L 260.738995 253.58792 \n",
       "L 260.902875 257.570034 \n",
       "L 261.066754 265.235488 \n",
       "L 261.230634 261.701889 \n",
       "L 261.394513 265.016169 \n",
       "L 261.558393 248.167807 \n",
       "L 261.722272 257.863302 \n",
       "L 261.886152 257.305161 \n",
       "L 262.050032 249.937884 \n",
       "L 262.213911 260.048166 \n",
       "L 262.377791 249.587213 \n",
       "L 262.54167 248.808606 \n",
       "L 262.70555 265.110652 \n",
       "L 262.869429 253.733941 \n",
       "L 263.033309 257.105162 \n",
       "L 263.361068 272.79089 \n",
       "L 263.524947 258.992797 \n",
       "L 263.688827 266.101159 \n",
       "L 263.852706 252.907572 \n",
       "L 264.016586 261.780354 \n",
       "L 264.180466 260.008316 \n",
       "L 264.344345 256.455748 \n",
       "L 264.508225 261.688354 \n",
       "L 264.672104 262.183089 \n",
       "L 264.835984 250.682684 \n",
       "L 264.999863 259.146682 \n",
       "L 265.163743 252.997239 \n",
       "L 265.327622 257.162042 \n",
       "L 265.491502 234.886753 \n",
       "L 265.655381 257.519437 \n",
       "L 265.819261 244.807763 \n",
       "L 265.983141 246.797546 \n",
       "L 266.14702 264.378896 \n",
       "L 266.638659 244.462598 \n",
       "L 266.802538 252.647669 \n",
       "L 266.966418 248.06636 \n",
       "L 267.130297 251.006166 \n",
       "L 267.294177 262.638976 \n",
       "L 267.458056 246.227718 \n",
       "L 267.621936 248.922818 \n",
       "L 267.785815 263.828732 \n",
       "L 267.949695 262.665659 \n",
       "L 268.113575 264.962901 \n",
       "L 268.277454 263.493628 \n",
       "L 268.441334 253.462025 \n",
       "L 268.605213 267.939377 \n",
       "L 268.769093 258.576034 \n",
       "L 268.932972 256.701045 \n",
       "L 269.096852 253.313132 \n",
       "L 269.260731 256.324195 \n",
       "L 269.58849 254.174813 \n",
       "L 269.75237 256.281913 \n",
       "L 269.916249 264.782351 \n",
       "L 270.244009 255.297061 \n",
       "L 270.407888 236.633079 \n",
       "L 270.899527 266.397319 \n",
       "L 271.063406 240.939121 \n",
       "L 271.227286 241.992696 \n",
       "L 271.391165 249.028344 \n",
       "L 271.555045 261.118475 \n",
       "L 271.718924 256.196974 \n",
       "L 271.882804 259.953279 \n",
       "L 272.046683 249.928244 \n",
       "L 272.210563 254.766861 \n",
       "L 272.210563 254.766861 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_34\">\n",
       "    <path d=\"M 41.632051 45.468553 \n",
       "L 53.16917 175.786492 \n",
       "L 64.70629 202.615706 \n",
       "L 76.243409 216.70909 \n",
       "L 87.780529 219.176377 \n",
       "L 99.317649 230.656511 \n",
       "L 110.854768 233.046718 \n",
       "L 122.391888 237.151018 \n",
       "L 133.929007 237.332381 \n",
       "L 145.466127 238.361531 \n",
       "L 157.003247 238.141914 \n",
       "L 168.540366 239.698892 \n",
       "L 180.077486 238.910398 \n",
       "L 191.614605 241.967548 \n",
       "L 203.151725 242.334923 \n",
       "L 214.688845 242.460388 \n",
       "L 226.225964 243.071585 \n",
       "L 237.763084 243.935151 \n",
       "L 249.300203 238.903435 \n",
       "L 260.837323 242.24627 \n",
       "\" clip-path=\"url(#p9587c0e5d4)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 30.103125 285.39089 \n",
       "L 30.103125 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 283.739489 285.39089 \n",
       "L 283.739489 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 30.103125 285.39089 \n",
       "L 283.739489 285.39089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 30.103125 8.19089 \n",
       "L 283.739489 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"legend_1\">\n",
       "    <g id=\"patch_7\">\n",
       "     <path d=\"M 197.148864 46.10339 \n",
       "L 276.739489 46.10339 \n",
       "Q 278.739489 46.10339 278.739489 44.10339 \n",
       "L 278.739489 15.19089 \n",
       "Q 278.739489 13.19089 276.739489 13.19089 \n",
       "L 197.148864 13.19089 \n",
       "Q 195.148864 13.19089 195.148864 15.19089 \n",
       "L 195.148864 44.10339 \n",
       "Q 195.148864 46.10339 197.148864 46.10339 \n",
       "z\n",
       "\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_35\">\n",
       "     <path d=\"M 199.148864 21.289328 \n",
       "L 209.148864 21.289328 \n",
       "L 219.148864 21.289328 \n",
       "\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_18\">\n",
       "     <!-- train_loss -->\n",
       "     <g transform=\"translate(227.148864 24.789328) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
       "Q 2534 3019 2420 3045 \n",
       "Q 2306 3072 2169 3072 \n",
       "Q 1681 3072 1420 2755 \n",
       "Q 1159 2438 1159 1844 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1341 3275 1631 3429 \n",
       "Q 1922 3584 2338 3584 \n",
       "Q 2397 3584 2469 3576 \n",
       "Q 2541 3569 2628 3553 \n",
       "L 2631 2963 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
       "Q 1497 1759 1228 1600 \n",
       "Q 959 1441 959 1056 \n",
       "Q 959 750 1161 570 \n",
       "Q 1363 391 1709 391 \n",
       "Q 2188 391 2477 730 \n",
       "Q 2766 1069 2766 1631 \n",
       "L 2766 1759 \n",
       "L 2194 1759 \n",
       "z\n",
       "M 3341 1997 \n",
       "L 3341 0 \n",
       "L 2766 0 \n",
       "L 2766 531 \n",
       "Q 2569 213 2275 61 \n",
       "Q 1981 -91 1556 -91 \n",
       "Q 1019 -91 701 211 \n",
       "Q 384 513 384 1019 \n",
       "Q 384 1609 779 1909 \n",
       "Q 1175 2209 1959 2209 \n",
       "L 2766 2209 \n",
       "L 2766 2266 \n",
       "Q 2766 2663 2505 2880 \n",
       "Q 2244 3097 1772 3097 \n",
       "Q 1472 3097 1187 3025 \n",
       "Q 903 2953 641 2809 \n",
       "L 641 3341 \n",
       "Q 956 3463 1253 3523 \n",
       "Q 1550 3584 1831 3584 \n",
       "Q 2591 3584 2966 3190 \n",
       "Q 3341 2797 3341 1997 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
       "L 1178 3500 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 3500 \n",
       "z\n",
       "M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 4134 \n",
       "L 603 4134 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
       "L 3513 0 \n",
       "L 2938 0 \n",
       "L 2938 2094 \n",
       "Q 2938 2591 2744 2837 \n",
       "Q 2550 3084 2163 3084 \n",
       "Q 1697 3084 1428 2787 \n",
       "Q 1159 2491 1159 1978 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1366 3272 1645 3428 \n",
       "Q 1925 3584 2291 3584 \n",
       "Q 2894 3584 3203 3211 \n",
       "Q 3513 2838 3513 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-5f\" d=\"M 3263 -1063 \n",
       "L 3263 -1509 \n",
       "L -63 -1509 \n",
       "L -63 -1063 \n",
       "L 3263 -1063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-5f\" x=\"232.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"282.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6f\" x=\"310.546875\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"371.728516\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"423.828125\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_36\">\n",
       "     <path d=\"M 199.148864 36.245578 \n",
       "L 209.148864 36.245578 \n",
       "L 219.148864 36.245578 \n",
       "\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_19\">\n",
       "     <!-- val_loss -->\n",
       "     <g transform=\"translate(227.148864 39.745578) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-76\" d=\"M 191 3500 \n",
       "L 800 3500 \n",
       "L 1894 563 \n",
       "L 2988 3500 \n",
       "L 3597 3500 \n",
       "L 2284 0 \n",
       "L 1503 0 \n",
       "L 191 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-76\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"59.179688\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"120.458984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-5f\" x=\"148.242188\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"198.242188\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6f\" x=\"226.025391\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"287.207031\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"339.306641\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g id=\"patch_8\">\n",
       "    <path d=\"M 334.466761 285.39089 \n",
       "L 588.103125 285.39089 \n",
       "L 588.103125 8.19089 \n",
       "L 334.466761 8.19089 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_3\">\n",
       "    <g id=\"xtick_9\">\n",
       "     <g id=\"line2d_37\">\n",
       "      <path d=\"M 345.995687 285.39089 \n",
       "L 345.995687 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_38\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"345.995687\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_20\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(342.814437 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_10\">\n",
       "     <g id=\"line2d_39\">\n",
       "      <path d=\"M 378.771595 285.39089 \n",
       "L 378.771595 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_40\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"378.771595\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_21\">\n",
       "      <!-- 2000 -->\n",
       "      <g transform=\"translate(366.046595 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_11\">\n",
       "     <g id=\"line2d_41\">\n",
       "      <path d=\"M 411.547503 285.39089 \n",
       "L 411.547503 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_42\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"411.547503\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_22\">\n",
       "      <!-- 4000 -->\n",
       "      <g transform=\"translate(398.822503 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_12\">\n",
       "     <g id=\"line2d_43\">\n",
       "      <path d=\"M 444.323411 285.39089 \n",
       "L 444.323411 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_44\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"444.323411\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_23\">\n",
       "      <!-- 6000 -->\n",
       "      <g transform=\"translate(431.598411 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-36\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_13\">\n",
       "     <g id=\"line2d_45\">\n",
       "      <path d=\"M 477.099319 285.39089 \n",
       "L 477.099319 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_46\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"477.099319\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_24\">\n",
       "      <!-- 8000 -->\n",
       "      <g transform=\"translate(464.374319 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-38\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_14\">\n",
       "     <g id=\"line2d_47\">\n",
       "      <path d=\"M 509.875227 285.39089 \n",
       "L 509.875227 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_48\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"509.875227\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_25\">\n",
       "      <!-- 10000 -->\n",
       "      <g transform=\"translate(493.968977 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_15\">\n",
       "     <g id=\"line2d_49\">\n",
       "      <path d=\"M 542.651135 285.39089 \n",
       "L 542.651135 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_50\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"542.651135\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_26\">\n",
       "      <!-- 12000 -->\n",
       "      <g transform=\"translate(526.744885 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_16\">\n",
       "     <g id=\"line2d_51\">\n",
       "      <path d=\"M 575.427043 285.39089 \n",
       "L 575.427043 8.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_52\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mc33f94c6a2\" x=\"575.427043\" y=\"285.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_27\">\n",
       "      <!-- 14000 -->\n",
       "      <g transform=\"translate(559.520793 299.989328) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-34\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"254.492188\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_28\">\n",
       "     <!-- step -->\n",
       "     <g transform=\"translate(450.469318 313.667453) scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-74\" x=\"52.099609\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-65\" x=\"91.308594\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-70\" x=\"152.832031\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_4\">\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_53\">\n",
       "      <path d=\"M 334.466761 272.79089 \n",
       "L 588.103125 272.79089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_54\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"272.79089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_29\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(311.563636 276.590109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_10\">\n",
       "     <g id=\"line2d_55\">\n",
       "      <path d=\"M 334.466761 221.59089 \n",
       "L 588.103125 221.59089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_56\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"221.59089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_30\">\n",
       "      <!-- 0.2 -->\n",
       "      <g transform=\"translate(311.563636 225.390109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_11\">\n",
       "     <g id=\"line2d_57\">\n",
       "      <path d=\"M 334.466761 170.39089 \n",
       "L 588.103125 170.39089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_58\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"170.39089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_31\">\n",
       "      <!-- 0.4 -->\n",
       "      <g transform=\"translate(311.563636 174.190109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-34\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_12\">\n",
       "     <g id=\"line2d_59\">\n",
       "      <path d=\"M 334.466761 119.19089 \n",
       "L 588.103125 119.19089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_60\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"119.19089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_32\">\n",
       "      <!-- 0.6 -->\n",
       "      <g transform=\"translate(311.563636 122.990109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-36\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_13\">\n",
       "     <g id=\"line2d_61\">\n",
       "      <path d=\"M 334.466761 67.99089 \n",
       "L 588.103125 67.99089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_62\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"67.99089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_33\">\n",
       "      <!-- 0.8 -->\n",
       "      <g transform=\"translate(311.563636 71.790109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-38\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_14\">\n",
       "     <g id=\"line2d_63\">\n",
       "      <path d=\"M 334.466761 16.79089 \n",
       "L 588.103125 16.79089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_64\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m2ed9862671\" x=\"334.466761\" y=\"16.79089\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_34\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(311.563636 20.590109) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_65\">\n",
       "    <path d=\"M 345.995687 272.79089 \n",
       "L 346.159567 196.79089 \n",
       "L 346.323446 228.79089 \n",
       "L 346.978964 184.79089 \n",
       "L 347.142844 204.79089 \n",
       "L 347.306723 196.79089 \n",
       "L 347.634482 196.79089 \n",
       "L 347.798362 160.79089 \n",
       "L 348.126121 180.79089 \n",
       "L 348.290001 164.79089 \n",
       "L 348.45388 168.79089 \n",
       "L 348.61776 168.79089 \n",
       "L 348.781639 176.79089 \n",
       "L 348.945519 152.79089 \n",
       "L 349.109398 168.79089 \n",
       "L 349.273278 160.79089 \n",
       "L 349.437157 176.79089 \n",
       "L 349.764916 184.79089 \n",
       "L 349.928796 176.79089 \n",
       "L 350.092675 156.79089 \n",
       "L 350.256555 172.79089 \n",
       "L 350.420435 168.79089 \n",
       "L 350.584314 148.79089 \n",
       "L 350.748194 152.79089 \n",
       "L 350.912073 124.79089 \n",
       "L 351.075953 160.79089 \n",
       "L 351.403712 148.79089 \n",
       "L 351.567591 156.79089 \n",
       "L 351.731471 184.79089 \n",
       "L 351.89535 140.79089 \n",
       "L 352.223109 176.79089 \n",
       "L 352.714748 148.79089 \n",
       "L 352.878628 168.79089 \n",
       "L 353.042507 160.79089 \n",
       "L 353.206387 136.79089 \n",
       "L 353.370266 148.79089 \n",
       "L 353.534146 140.79089 \n",
       "L 353.698025 168.79089 \n",
       "L 353.861905 164.79089 \n",
       "L 354.025784 140.79089 \n",
       "L 354.189664 148.79089 \n",
       "L 354.353544 140.79089 \n",
       "L 354.517423 148.79089 \n",
       "L 354.681303 128.79089 \n",
       "L 354.845182 168.79089 \n",
       "L 355.009062 128.79089 \n",
       "L 355.172941 176.79089 \n",
       "L 355.336821 132.79089 \n",
       "L 355.66458 176.79089 \n",
       "L 355.828459 144.79089 \n",
       "L 355.992339 136.79089 \n",
       "L 356.156218 148.79089 \n",
       "L 356.320098 116.79089 \n",
       "L 356.483978 144.79089 \n",
       "L 356.647857 132.79089 \n",
       "L 356.811737 148.79089 \n",
       "L 356.975616 152.79089 \n",
       "L 357.139496 108.79089 \n",
       "L 357.303375 152.79089 \n",
       "L 357.467255 124.79089 \n",
       "L 357.631134 116.79089 \n",
       "L 357.795014 116.79089 \n",
       "L 357.958893 140.79089 \n",
       "L 358.286652 116.79089 \n",
       "L 358.450532 136.79089 \n",
       "L 358.614412 124.79089 \n",
       "L 358.942171 140.79089 \n",
       "L 359.10605 100.79089 \n",
       "L 359.26993 136.79089 \n",
       "L 359.597689 112.79089 \n",
       "L 359.761568 128.79089 \n",
       "L 359.925448 128.79089 \n",
       "L 360.253207 120.79089 \n",
       "L 360.417086 132.79089 \n",
       "L 360.580966 132.79089 \n",
       "L 360.744846 144.79089 \n",
       "L 360.908725 136.79089 \n",
       "L 361.072605 108.79089 \n",
       "L 361.236484 148.79089 \n",
       "L 361.400364 116.79089 \n",
       "L 361.564243 120.79089 \n",
       "L 361.728123 144.79089 \n",
       "L 362.055882 116.79089 \n",
       "L 362.219761 112.79089 \n",
       "L 362.383641 120.79089 \n",
       "L 362.54752 136.79089 \n",
       "L 362.7114 128.79089 \n",
       "L 362.87528 144.79089 \n",
       "L 363.039159 128.79089 \n",
       "L 363.203039 124.79089 \n",
       "L 363.366918 116.79089 \n",
       "L 363.530798 132.79089 \n",
       "L 363.694677 112.79089 \n",
       "L 363.858557 128.79089 \n",
       "L 364.022436 128.79089 \n",
       "L 364.186316 112.79089 \n",
       "L 364.350195 136.79089 \n",
       "L 364.514075 128.79089 \n",
       "L 364.677955 136.79089 \n",
       "L 364.841834 120.79089 \n",
       "L 365.005714 140.79089 \n",
       "L 365.169593 128.79089 \n",
       "L 365.333473 96.79089 \n",
       "L 365.497352 124.79089 \n",
       "L 365.661232 92.79089 \n",
       "L 365.825111 144.79089 \n",
       "L 365.988991 136.79089 \n",
       "L 366.15287 116.79089 \n",
       "L 366.31675 152.79089 \n",
       "L 366.644509 128.79089 \n",
       "L 366.808389 92.79089 \n",
       "L 366.972268 116.79089 \n",
       "L 367.136148 80.79089 \n",
       "L 367.300027 144.79089 \n",
       "L 367.463907 92.79089 \n",
       "L 367.791666 108.79089 \n",
       "L 367.955545 108.79089 \n",
       "L 368.119425 112.79089 \n",
       "L 368.283304 100.79089 \n",
       "L 368.447184 120.79089 \n",
       "L 368.774943 80.79089 \n",
       "L 368.938823 92.79089 \n",
       "L 369.266582 124.79089 \n",
       "L 369.430461 124.79089 \n",
       "L 369.594341 148.79089 \n",
       "L 369.75822 108.79089 \n",
       "L 369.9221 100.79089 \n",
       "L 370.085979 116.79089 \n",
       "L 370.249859 100.79089 \n",
       "L 370.577618 124.79089 \n",
       "L 370.741497 112.79089 \n",
       "L 371.069257 112.79089 \n",
       "L 371.233136 104.79089 \n",
       "L 371.397016 132.79089 \n",
       "L 371.724775 88.79089 \n",
       "L 371.888654 124.79089 \n",
       "L 372.052534 132.79089 \n",
       "L 372.216413 104.79089 \n",
       "L 372.380293 108.79089 \n",
       "L 372.544172 96.79089 \n",
       "L 372.708052 128.79089 \n",
       "L 372.871931 84.79089 \n",
       "L 373.199691 116.79089 \n",
       "L 373.36357 112.79089 \n",
       "L 373.52745 100.79089 \n",
       "L 373.691329 116.79089 \n",
       "L 373.855209 92.79089 \n",
       "L 374.019088 124.79089 \n",
       "L 374.182968 92.79089 \n",
       "L 374.346847 92.79089 \n",
       "L 374.510727 96.79089 \n",
       "L 374.838486 140.79089 \n",
       "L 375.002366 96.79089 \n",
       "L 375.166245 92.79089 \n",
       "L 375.330125 108.79089 \n",
       "L 375.494004 96.79089 \n",
       "L 375.657884 132.79089 \n",
       "L 375.821763 124.79089 \n",
       "L 376.149522 100.79089 \n",
       "L 376.313402 108.79089 \n",
       "L 376.641161 100.79089 \n",
       "L 376.80504 132.79089 \n",
       "L 376.96892 84.79089 \n",
       "L 377.1328 104.79089 \n",
       "L 377.460559 84.79089 \n",
       "L 377.624438 100.79089 \n",
       "L 377.788318 84.79089 \n",
       "L 377.952197 100.79089 \n",
       "L 378.116077 92.79089 \n",
       "L 378.279956 72.79089 \n",
       "L 378.607715 124.79089 \n",
       "L 378.771595 88.79089 \n",
       "L 378.935474 112.79089 \n",
       "L 379.099354 72.79089 \n",
       "L 379.263234 116.79089 \n",
       "L 379.427113 88.79089 \n",
       "L 379.590993 84.79089 \n",
       "L 379.754872 116.79089 \n",
       "L 379.918752 88.79089 \n",
       "L 380.082631 120.79089 \n",
       "L 380.246511 88.79089 \n",
       "L 380.41039 108.79089 \n",
       "L 380.57427 104.79089 \n",
       "L 380.738149 104.79089 \n",
       "L 381.065908 68.79089 \n",
       "L 381.229788 100.79089 \n",
       "L 381.393668 84.79089 \n",
       "L 381.557547 100.79089 \n",
       "L 381.721427 104.79089 \n",
       "L 381.885306 100.79089 \n",
       "L 382.213065 84.79089 \n",
       "L 382.376945 104.79089 \n",
       "L 382.540824 96.79089 \n",
       "L 382.704704 104.79089 \n",
       "L 382.868583 120.79089 \n",
       "L 383.032463 76.79089 \n",
       "L 383.196343 116.79089 \n",
       "L 383.360222 96.79089 \n",
       "L 383.524102 96.79089 \n",
       "L 383.687981 92.79089 \n",
       "L 383.851861 76.79089 \n",
       "L 384.01574 80.79089 \n",
       "L 384.343499 116.79089 \n",
       "L 384.507379 80.79089 \n",
       "L 384.671258 96.79089 \n",
       "L 384.835138 92.79089 \n",
       "L 384.999017 108.79089 \n",
       "L 385.162897 72.79089 \n",
       "L 385.326777 104.79089 \n",
       "L 385.654536 92.79089 \n",
       "L 385.818415 100.79089 \n",
       "L 385.982295 84.79089 \n",
       "L 386.146174 104.79089 \n",
       "L 386.310054 76.79089 \n",
       "L 386.473933 112.79089 \n",
       "L 386.637813 100.79089 \n",
       "L 386.801692 100.79089 \n",
       "L 386.965572 64.79089 \n",
       "L 387.129451 56.79089 \n",
       "L 387.293331 96.79089 \n",
       "L 387.457211 92.79089 \n",
       "L 387.62109 120.79089 \n",
       "L 387.78497 80.79089 \n",
       "L 387.948849 76.79089 \n",
       "L 388.112729 80.79089 \n",
       "L 388.276608 92.79089 \n",
       "L 388.440488 84.79089 \n",
       "L 388.604367 88.79089 \n",
       "L 388.768247 108.79089 \n",
       "L 388.932126 92.79089 \n",
       "L 389.096006 92.79089 \n",
       "L 389.423765 100.79089 \n",
       "L 389.587645 100.79089 \n",
       "L 389.751524 76.79089 \n",
       "L 389.915404 80.79089 \n",
       "L 390.079283 108.79089 \n",
       "L 390.243163 104.79089 \n",
       "L 390.407042 88.79089 \n",
       "L 390.570922 52.79089 \n",
       "L 390.734801 84.79089 \n",
       "L 390.898681 84.79089 \n",
       "L 391.06256 80.79089 \n",
       "L 391.22644 80.79089 \n",
       "L 391.390319 112.79089 \n",
       "L 392.045838 68.79089 \n",
       "L 392.209717 100.79089 \n",
       "L 392.373597 76.79089 \n",
       "L 392.537476 88.79089 \n",
       "L 392.701356 88.79089 \n",
       "L 392.865235 116.79089 \n",
       "L 393.029115 96.79089 \n",
       "L 393.192994 100.79089 \n",
       "L 393.356874 96.79089 \n",
       "L 393.684633 64.79089 \n",
       "L 393.848513 92.79089 \n",
       "L 394.012392 60.79089 \n",
       "L 394.176272 100.79089 \n",
       "L 394.340151 84.79089 \n",
       "L 394.504031 88.79089 \n",
       "L 394.66791 116.79089 \n",
       "L 394.83179 80.79089 \n",
       "L 394.995669 72.79089 \n",
       "L 395.159549 56.79089 \n",
       "L 395.487308 88.79089 \n",
       "L 395.651188 84.79089 \n",
       "L 395.815067 88.79089 \n",
       "L 395.978947 88.79089 \n",
       "L 396.142826 76.79089 \n",
       "L 396.306706 104.79089 \n",
       "L 396.634465 72.79089 \n",
       "L 396.798344 96.79089 \n",
       "L 396.962224 60.79089 \n",
       "L 397.126103 84.79089 \n",
       "L 397.289983 68.79089 \n",
       "L 397.453862 100.79089 \n",
       "L 397.617742 80.79089 \n",
       "L 397.781622 80.79089 \n",
       "L 397.945501 116.79089 \n",
       "L 398.109381 52.79089 \n",
       "L 398.27326 72.79089 \n",
       "L 398.43714 72.79089 \n",
       "L 398.601019 76.79089 \n",
       "L 398.764899 72.79089 \n",
       "L 398.928778 96.79089 \n",
       "L 399.092658 80.79089 \n",
       "L 399.256537 96.79089 \n",
       "L 399.420417 68.79089 \n",
       "L 399.584296 64.79089 \n",
       "L 399.748176 80.79089 \n",
       "L 399.912056 80.79089 \n",
       "L 400.075935 92.79089 \n",
       "L 400.403694 92.79089 \n",
       "L 400.567574 100.79089 \n",
       "L 400.731453 72.79089 \n",
       "L 401.223092 104.79089 \n",
       "L 401.550851 68.79089 \n",
       "L 401.71473 96.79089 \n",
       "L 401.87861 76.79089 \n",
       "L 402.04249 92.79089 \n",
       "L 402.370249 92.79089 \n",
       "L 402.698008 56.79089 \n",
       "L 403.025767 88.79089 \n",
       "L 403.353526 64.79089 \n",
       "L 403.517405 84.79089 \n",
       "L 403.681285 64.79089 \n",
       "L 404.009044 64.79089 \n",
       "L 404.172924 84.79089 \n",
       "L 404.336803 84.79089 \n",
       "L 404.500683 80.79089 \n",
       "L 404.664562 68.79089 \n",
       "L 404.828442 88.79089 \n",
       "L 404.992321 68.79089 \n",
       "L 405.32008 84.79089 \n",
       "L 405.48396 84.79089 \n",
       "L 405.647839 76.79089 \n",
       "L 405.811719 96.79089 \n",
       "L 406.303358 52.79089 \n",
       "L 406.467237 64.79089 \n",
       "L 406.631117 48.79089 \n",
       "L 406.794996 80.79089 \n",
       "L 406.958876 80.79089 \n",
       "L 407.122755 48.79089 \n",
       "L 407.450514 100.79089 \n",
       "L 407.614394 88.79089 \n",
       "L 407.778273 52.79089 \n",
       "L 407.942153 84.79089 \n",
       "L 408.269912 68.79089 \n",
       "L 408.433792 68.79089 \n",
       "L 408.597671 92.79089 \n",
       "L 408.761551 76.79089 \n",
       "L 409.08931 88.79089 \n",
       "L 409.417069 72.79089 \n",
       "L 409.580948 84.79089 \n",
       "L 409.744828 68.79089 \n",
       "L 409.908707 92.79089 \n",
       "L 410.236467 92.79089 \n",
       "L 410.400346 68.79089 \n",
       "L 410.564226 64.79089 \n",
       "L 410.728105 68.79089 \n",
       "L 410.891985 56.79089 \n",
       "L 411.055864 56.79089 \n",
       "L 411.219744 80.79089 \n",
       "L 411.383623 80.79089 \n",
       "L 411.547503 72.79089 \n",
       "L 411.711382 56.79089 \n",
       "L 411.875262 52.79089 \n",
       "L 412.039141 88.79089 \n",
       "L 412.203021 48.79089 \n",
       "L 412.53078 68.79089 \n",
       "L 412.69466 80.79089 \n",
       "L 412.858539 60.79089 \n",
       "L 413.022419 88.79089 \n",
       "L 413.186298 60.79089 \n",
       "L 413.350178 76.79089 \n",
       "L 413.514057 44.79089 \n",
       "L 413.677937 72.79089 \n",
       "L 413.841816 48.79089 \n",
       "L 414.005696 76.79089 \n",
       "L 414.169576 80.79089 \n",
       "L 414.333455 56.79089 \n",
       "L 414.497335 60.79089 \n",
       "L 414.661214 88.79089 \n",
       "L 414.825094 56.79089 \n",
       "L 415.152853 96.79089 \n",
       "L 415.316732 64.79089 \n",
       "L 415.480612 56.79089 \n",
       "L 415.808371 68.79089 \n",
       "L 415.97225 64.79089 \n",
       "L 416.13613 64.79089 \n",
       "L 416.30001 68.79089 \n",
       "L 416.463889 76.79089 \n",
       "L 416.627769 92.79089 \n",
       "L 416.791648 56.79089 \n",
       "L 416.955528 76.79089 \n",
       "L 417.119407 60.79089 \n",
       "L 417.283287 76.79089 \n",
       "L 417.447166 40.79089 \n",
       "L 417.611046 56.79089 \n",
       "L 417.774925 104.79089 \n",
       "L 417.938805 64.79089 \n",
       "L 418.102684 72.79089 \n",
       "L 418.266564 68.79089 \n",
       "L 418.430444 60.79089 \n",
       "L 418.594323 88.79089 \n",
       "L 418.758203 84.79089 \n",
       "L 418.922082 84.79089 \n",
       "L 419.085962 64.79089 \n",
       "L 419.249841 64.79089 \n",
       "L 419.413721 72.79089 \n",
       "L 419.5776 104.79089 \n",
       "L 419.74148 56.79089 \n",
       "L 419.905359 76.79089 \n",
       "L 420.233118 48.79089 \n",
       "L 420.396998 56.79089 \n",
       "L 420.560878 44.79089 \n",
       "L 420.724757 72.79089 \n",
       "L 420.888637 52.79089 \n",
       "L 421.216396 72.79089 \n",
       "L 421.380275 64.79089 \n",
       "L 421.544155 80.79089 \n",
       "L 421.708034 64.79089 \n",
       "L 421.871914 60.79089 \n",
       "L 422.035793 88.79089 \n",
       "L 422.527432 36.79089 \n",
       "L 422.691312 72.79089 \n",
       "L 422.855191 72.79089 \n",
       "L 423.019071 84.79089 \n",
       "L 423.18295 64.79089 \n",
       "L 423.34683 80.79089 \n",
       "L 423.510709 68.79089 \n",
       "L 423.674589 68.79089 \n",
       "L 423.838468 48.79089 \n",
       "L 424.002348 52.79089 \n",
       "L 424.166227 52.79089 \n",
       "L 424.493987 84.79089 \n",
       "L 424.657866 64.79089 \n",
       "L 424.821746 80.79089 \n",
       "L 424.985625 56.79089 \n",
       "L 425.149505 52.79089 \n",
       "L 425.313384 80.79089 \n",
       "L 425.477264 48.79089 \n",
       "L 425.805023 108.79089 \n",
       "L 425.968902 56.79089 \n",
       "L 426.296661 100.79089 \n",
       "L 426.460541 56.79089 \n",
       "L 426.624421 52.79089 \n",
       "L 426.7883 92.79089 \n",
       "L 427.116059 60.79089 \n",
       "L 427.279939 64.79089 \n",
       "L 427.443818 60.79089 \n",
       "L 427.607698 76.79089 \n",
       "L 427.771577 72.79089 \n",
       "L 427.935457 72.79089 \n",
       "L 428.263216 60.79089 \n",
       "L 428.427095 64.79089 \n",
       "L 428.590975 64.79089 \n",
       "L 428.754855 68.79089 \n",
       "L 428.918734 68.79089 \n",
       "L 429.246493 60.79089 \n",
       "L 429.574252 76.79089 \n",
       "L 429.738132 72.79089 \n",
       "L 429.902011 52.79089 \n",
       "L 430.065891 60.79089 \n",
       "L 430.22977 80.79089 \n",
       "L 430.39365 64.79089 \n",
       "L 430.557529 72.79089 \n",
       "L 430.721409 52.79089 \n",
       "L 430.885289 56.79089 \n",
       "L 431.049168 76.79089 \n",
       "L 431.213048 64.79089 \n",
       "L 431.376927 28.79089 \n",
       "L 431.540807 64.79089 \n",
       "L 431.704686 68.79089 \n",
       "L 431.868566 64.79089 \n",
       "L 432.032445 68.79089 \n",
       "L 432.196325 48.79089 \n",
       "L 432.360204 68.79089 \n",
       "L 432.524084 64.79089 \n",
       "L 432.687963 80.79089 \n",
       "L 432.851843 48.79089 \n",
       "L 433.015723 64.79089 \n",
       "L 433.179602 64.79089 \n",
       "L 433.343482 52.79089 \n",
       "L 433.507361 60.79089 \n",
       "L 433.671241 76.79089 \n",
       "L 433.83512 60.79089 \n",
       "L 433.999 64.79089 \n",
       "L 434.162879 48.79089 \n",
       "L 434.326759 100.79089 \n",
       "L 434.654518 72.79089 \n",
       "L 434.818398 80.79089 \n",
       "L 434.982277 52.79089 \n",
       "L 435.146157 56.79089 \n",
       "L 435.473916 48.79089 \n",
       "L 435.801675 72.79089 \n",
       "L 436.129434 72.79089 \n",
       "L 436.293313 48.79089 \n",
       "L 436.784952 92.79089 \n",
       "L 437.276591 36.79089 \n",
       "L 437.44047 68.79089 \n",
       "L 437.60435 68.79089 \n",
       "L 437.768229 72.79089 \n",
       "L 437.932109 80.79089 \n",
       "L 438.095988 68.79089 \n",
       "L 438.259868 88.79089 \n",
       "L 438.423747 56.79089 \n",
       "L 438.587627 52.79089 \n",
       "L 438.751506 68.79089 \n",
       "L 439.079266 52.79089 \n",
       "L 439.407025 84.79089 \n",
       "L 439.570904 56.79089 \n",
       "L 439.734784 52.79089 \n",
       "L 440.062543 72.79089 \n",
       "L 440.226422 72.79089 \n",
       "L 440.390302 64.79089 \n",
       "L 440.554181 64.79089 \n",
       "L 440.718061 72.79089 \n",
       "L 440.88194 64.79089 \n",
       "L 441.04582 68.79089 \n",
       "L 441.2097 60.79089 \n",
       "L 441.373579 60.79089 \n",
       "L 441.537459 84.79089 \n",
       "L 441.701338 68.79089 \n",
       "L 441.865218 64.79089 \n",
       "L 442.029097 72.79089 \n",
       "L 442.192977 48.79089 \n",
       "L 442.356856 56.79089 \n",
       "L 442.520736 72.79089 \n",
       "L 442.848495 40.79089 \n",
       "L 443.012375 76.79089 \n",
       "L 443.176254 72.79089 \n",
       "L 443.340134 80.79089 \n",
       "L 443.504013 60.79089 \n",
       "L 443.667893 64.79089 \n",
       "L 443.995652 44.79089 \n",
       "L 444.159531 48.79089 \n",
       "L 444.323411 56.79089 \n",
       "L 444.48729 84.79089 \n",
       "L 444.65117 44.79089 \n",
       "L 444.815049 80.79089 \n",
       "L 444.978929 84.79089 \n",
       "L 445.142809 48.79089 \n",
       "L 445.306688 52.79089 \n",
       "L 445.634447 68.79089 \n",
       "L 445.798327 40.79089 \n",
       "L 445.962206 68.79089 \n",
       "L 446.126086 64.79089 \n",
       "L 446.289965 56.79089 \n",
       "L 446.453845 56.79089 \n",
       "L 446.617724 72.79089 \n",
       "L 446.781604 48.79089 \n",
       "L 446.945483 68.79089 \n",
       "L 447.109363 68.79089 \n",
       "L 447.273243 76.79089 \n",
       "L 447.437122 48.79089 \n",
       "L 447.601002 48.79089 \n",
       "L 447.764881 68.79089 \n",
       "L 447.928761 60.79089 \n",
       "L 448.09264 44.79089 \n",
       "L 448.25652 84.79089 \n",
       "L 448.420399 72.79089 \n",
       "L 448.584279 76.79089 \n",
       "L 448.748158 52.79089 \n",
       "L 448.912038 84.79089 \n",
       "L 449.075917 40.79089 \n",
       "L 449.567556 60.79089 \n",
       "L 449.731436 56.79089 \n",
       "L 450.059195 64.79089 \n",
       "L 450.223074 76.79089 \n",
       "L 450.386954 64.79089 \n",
       "L 450.550833 68.79089 \n",
       "L 450.714713 48.79089 \n",
       "L 450.878592 64.79089 \n",
       "L 451.042472 44.79089 \n",
       "L 451.370231 76.79089 \n",
       "L 451.86187 36.79089 \n",
       "L 452.025749 72.79089 \n",
       "L 452.189629 68.79089 \n",
       "L 452.681267 48.79089 \n",
       "L 452.845147 64.79089 \n",
       "L 453.009026 52.79089 \n",
       "L 453.336786 72.79089 \n",
       "L 453.664545 60.79089 \n",
       "L 453.828424 64.79089 \n",
       "L 453.992304 56.79089 \n",
       "L 454.156183 56.79089 \n",
       "L 454.320063 68.79089 \n",
       "L 454.483942 56.79089 \n",
       "L 454.647822 80.79089 \n",
       "L 454.811701 60.79089 \n",
       "L 454.975581 68.79089 \n",
       "L 455.13946 52.79089 \n",
       "L 455.30334 56.79089 \n",
       "L 455.46722 80.79089 \n",
       "L 455.631099 56.79089 \n",
       "L 455.958858 84.79089 \n",
       "L 456.122738 64.79089 \n",
       "L 456.286617 64.79089 \n",
       "L 456.450497 72.79089 \n",
       "L 456.614376 72.79089 \n",
       "L 456.778256 52.79089 \n",
       "L 456.942135 72.79089 \n",
       "L 457.106015 76.79089 \n",
       "L 457.269894 52.79089 \n",
       "L 457.433774 84.79089 \n",
       "L 457.761533 52.79089 \n",
       "L 457.925413 44.79089 \n",
       "L 458.089292 52.79089 \n",
       "L 458.253172 68.79089 \n",
       "L 458.417051 60.79089 \n",
       "L 458.580931 40.79089 \n",
       "L 458.74481 52.79089 \n",
       "L 459.072569 52.79089 \n",
       "L 459.236449 40.79089 \n",
       "L 459.400328 60.79089 \n",
       "L 459.728088 52.79089 \n",
       "L 459.891967 64.79089 \n",
       "L 460.055847 56.79089 \n",
       "L 460.219726 56.79089 \n",
       "L 460.383606 52.79089 \n",
       "L 460.547485 56.79089 \n",
       "L 460.875244 44.79089 \n",
       "L 461.203003 80.79089 \n",
       "L 461.366883 52.79089 \n",
       "L 461.530762 44.79089 \n",
       "L 461.694642 60.79089 \n",
       "L 462.186281 48.79089 \n",
       "L 462.35016 40.79089 \n",
       "L 462.51404 44.79089 \n",
       "L 462.677919 52.79089 \n",
       "L 463.005678 28.79089 \n",
       "L 463.169558 72.79089 \n",
       "L 463.333437 64.79089 \n",
       "L 463.497317 76.79089 \n",
       "L 463.661197 48.79089 \n",
       "L 463.825076 52.79089 \n",
       "L 464.152835 72.79089 \n",
       "L 464.316715 64.79089 \n",
       "L 464.644474 32.79089 \n",
       "L 464.808353 56.79089 \n",
       "L 465.136112 48.79089 \n",
       "L 465.299992 72.79089 \n",
       "L 465.463871 68.79089 \n",
       "L 465.627751 52.79089 \n",
       "L 465.791631 56.79089 \n",
       "L 465.95551 56.79089 \n",
       "L 466.11939 76.79089 \n",
       "L 466.283269 48.79089 \n",
       "L 466.447149 40.79089 \n",
       "L 466.611028 84.79089 \n",
       "L 466.774908 40.79089 \n",
       "L 466.938787 64.79089 \n",
       "L 467.102667 64.79089 \n",
       "L 467.430426 48.79089 \n",
       "L 467.594305 52.79089 \n",
       "L 467.758185 48.79089 \n",
       "L 467.922065 64.79089 \n",
       "L 468.085944 64.79089 \n",
       "L 468.413703 52.79089 \n",
       "L 468.577583 48.79089 \n",
       "L 468.741462 52.79089 \n",
       "L 468.905342 64.79089 \n",
       "L 469.069221 48.79089 \n",
       "L 469.233101 56.79089 \n",
       "L 469.39698 48.79089 \n",
       "L 469.56086 48.79089 \n",
       "L 469.724739 52.79089 \n",
       "L 469.888619 60.79089 \n",
       "L 470.052499 56.79089 \n",
       "L 470.216378 68.79089 \n",
       "L 470.380258 64.79089 \n",
       "L 470.544137 40.79089 \n",
       "L 470.708017 44.79089 \n",
       "L 470.871896 56.79089 \n",
       "L 471.035776 40.79089 \n",
       "L 471.199655 80.79089 \n",
       "L 471.363535 40.79089 \n",
       "L 471.691294 56.79089 \n",
       "L 471.855173 56.79089 \n",
       "L 472.019053 68.79089 \n",
       "L 472.182933 52.79089 \n",
       "L 472.346812 64.79089 \n",
       "L 472.510692 64.79089 \n",
       "L 472.674571 44.79089 \n",
       "L 473.00233 76.79089 \n",
       "L 473.16621 48.79089 \n",
       "L 473.330089 56.79089 \n",
       "L 473.493969 44.79089 \n",
       "L 473.657848 52.79089 \n",
       "L 473.985608 52.79089 \n",
       "L 474.149487 56.79089 \n",
       "L 474.313367 52.79089 \n",
       "L 474.477246 60.79089 \n",
       "L 474.641126 48.79089 \n",
       "L 474.805005 52.79089 \n",
       "L 474.968885 40.79089 \n",
       "L 475.132764 40.79089 \n",
       "L 475.296644 44.79089 \n",
       "L 475.460523 32.79089 \n",
       "L 475.624403 32.79089 \n",
       "L 475.788282 36.79089 \n",
       "L 475.952162 68.79089 \n",
       "L 476.279921 56.79089 \n",
       "L 476.443801 64.79089 \n",
       "L 476.60768 48.79089 \n",
       "L 476.77156 60.79089 \n",
       "L 476.935439 44.79089 \n",
       "L 477.263198 60.79089 \n",
       "L 477.427078 56.79089 \n",
       "L 477.590957 44.79089 \n",
       "L 477.754837 44.79089 \n",
       "L 477.918716 68.79089 \n",
       "L 478.082596 72.79089 \n",
       "L 478.246476 40.79089 \n",
       "L 478.574235 60.79089 \n",
       "L 478.738114 40.79089 \n",
       "L 478.901994 56.79089 \n",
       "L 479.065873 44.79089 \n",
       "L 479.229753 56.79089 \n",
       "L 479.393632 28.79089 \n",
       "L 479.557512 52.79089 \n",
       "L 479.721391 40.79089 \n",
       "L 480.04915 84.79089 \n",
       "L 480.37691 48.79089 \n",
       "L 480.540789 68.79089 \n",
       "L 480.704669 64.79089 \n",
       "L 480.868548 48.79089 \n",
       "L 481.032428 52.79089 \n",
       "L 481.196307 60.79089 \n",
       "L 481.360187 52.79089 \n",
       "L 481.524066 60.79089 \n",
       "L 481.687946 36.79089 \n",
       "L 481.851825 76.79089 \n",
       "L 482.179584 32.79089 \n",
       "L 482.343464 40.79089 \n",
       "L 482.671223 68.79089 \n",
       "L 482.835103 68.79089 \n",
       "L 482.998982 52.79089 \n",
       "L 483.162862 56.79089 \n",
       "L 483.326741 52.79089 \n",
       "L 483.490621 52.79089 \n",
       "L 483.6545 44.79089 \n",
       "L 483.81838 52.79089 \n",
       "L 483.982259 84.79089 \n",
       "L 484.146139 36.79089 \n",
       "L 484.473898 68.79089 \n",
       "L 484.637778 44.79089 \n",
       "L 484.801657 64.79089 \n",
       "L 484.965537 44.79089 \n",
       "L 485.293296 44.79089 \n",
       "L 485.457175 36.79089 \n",
       "L 485.621055 36.79089 \n",
       "L 485.784934 48.79089 \n",
       "L 485.948814 44.79089 \n",
       "L 486.112693 56.79089 \n",
       "L 486.276573 48.79089 \n",
       "L 486.604332 60.79089 \n",
       "L 486.768212 32.79089 \n",
       "L 486.932091 52.79089 \n",
       "L 487.095971 36.79089 \n",
       "L 487.25985 56.79089 \n",
       "L 487.42373 40.79089 \n",
       "L 487.587609 56.79089 \n",
       "L 487.751489 60.79089 \n",
       "L 487.915368 56.79089 \n",
       "L 488.243127 28.79089 \n",
       "L 488.407007 52.79089 \n",
       "L 488.570887 48.79089 \n",
       "L 488.734766 64.79089 \n",
       "L 489.062525 44.79089 \n",
       "L 489.226405 52.79089 \n",
       "L 489.390284 68.79089 \n",
       "L 489.718043 32.79089 \n",
       "L 489.881923 72.79089 \n",
       "L 490.045802 64.79089 \n",
       "L 490.209682 40.79089 \n",
       "L 490.373561 48.79089 \n",
       "L 490.537441 68.79089 \n",
       "L 490.701321 32.79089 \n",
       "L 490.8652 52.79089 \n",
       "L 491.02908 44.79089 \n",
       "L 491.192959 44.79089 \n",
       "L 491.356839 52.79089 \n",
       "L 491.520718 44.79089 \n",
       "L 491.684598 80.79089 \n",
       "L 491.848477 48.79089 \n",
       "L 492.012357 60.79089 \n",
       "L 492.340116 40.79089 \n",
       "L 492.667875 48.79089 \n",
       "L 492.831755 40.79089 \n",
       "L 492.995634 64.79089 \n",
       "L 493.159514 44.79089 \n",
       "L 493.323393 64.79089 \n",
       "L 493.487273 44.79089 \n",
       "L 493.651152 64.79089 \n",
       "L 493.815032 68.79089 \n",
       "L 493.978911 64.79089 \n",
       "L 494.142791 64.79089 \n",
       "L 494.30667 60.79089 \n",
       "L 494.47055 48.79089 \n",
       "L 494.63443 56.79089 \n",
       "L 494.798309 56.79089 \n",
       "L 494.962189 52.79089 \n",
       "L 495.126068 56.79089 \n",
       "L 495.289948 32.79089 \n",
       "L 495.453827 36.79089 \n",
       "L 495.617707 68.79089 \n",
       "L 495.945466 44.79089 \n",
       "L 496.109345 60.79089 \n",
       "L 496.273225 40.79089 \n",
       "L 496.437104 40.79089 \n",
       "L 496.600984 76.79089 \n",
       "L 496.764864 24.79089 \n",
       "L 497.092623 64.79089 \n",
       "L 497.420382 28.79089 \n",
       "L 497.584261 40.79089 \n",
       "L 497.748141 40.79089 \n",
       "L 497.91202 60.79089 \n",
       "L 498.239779 44.79089 \n",
       "L 498.403659 48.79089 \n",
       "L 498.567538 44.79089 \n",
       "L 498.731418 52.79089 \n",
       "L 498.895298 32.79089 \n",
       "L 499.223057 52.79089 \n",
       "L 499.550816 36.79089 \n",
       "L 499.714695 40.79089 \n",
       "L 500.042454 72.79089 \n",
       "L 500.370213 36.79089 \n",
       "L 500.697972 48.79089 \n",
       "L 500.861852 48.79089 \n",
       "L 501.025732 60.79089 \n",
       "L 501.189611 28.79089 \n",
       "L 501.353491 64.79089 \n",
       "L 501.68125 40.79089 \n",
       "L 501.845129 56.79089 \n",
       "L 502.172888 40.79089 \n",
       "L 502.336768 52.79089 \n",
       "L 502.500647 48.79089 \n",
       "L 502.664527 36.79089 \n",
       "L 502.828407 40.79089 \n",
       "L 502.992286 52.79089 \n",
       "L 503.156166 48.79089 \n",
       "L 503.483925 72.79089 \n",
       "L 503.647804 60.79089 \n",
       "L 503.811684 32.79089 \n",
       "L 503.975563 48.79089 \n",
       "L 504.139443 44.79089 \n",
       "L 504.303322 84.79089 \n",
       "L 504.631081 28.79089 \n",
       "L 504.794961 48.79089 \n",
       "L 504.958841 48.79089 \n",
       "L 505.12272 36.79089 \n",
       "L 505.450479 48.79089 \n",
       "L 505.614359 32.79089 \n",
       "L 505.778238 56.79089 \n",
       "L 505.942118 40.79089 \n",
       "L 506.105997 44.79089 \n",
       "L 506.269877 36.79089 \n",
       "L 506.433756 44.79089 \n",
       "L 506.597636 44.79089 \n",
       "L 506.761515 48.79089 \n",
       "L 506.925395 56.79089 \n",
       "L 507.089275 52.79089 \n",
       "L 507.253154 64.79089 \n",
       "L 507.417034 52.79089 \n",
       "L 507.744793 52.79089 \n",
       "L 507.908672 60.79089 \n",
       "L 508.072552 60.79089 \n",
       "L 508.236431 56.79089 \n",
       "L 508.400311 32.79089 \n",
       "L 508.56419 36.79089 \n",
       "L 508.72807 32.79089 \n",
       "L 508.891949 52.79089 \n",
       "L 509.055829 48.79089 \n",
       "L 509.383588 48.79089 \n",
       "L 509.547468 40.79089 \n",
       "L 509.711347 56.79089 \n",
       "L 509.875227 32.79089 \n",
       "L 510.039106 28.79089 \n",
       "L 510.366865 44.79089 \n",
       "L 510.530745 44.79089 \n",
       "L 510.694624 64.79089 \n",
       "L 510.858504 48.79089 \n",
       "L 511.022383 44.79089 \n",
       "L 511.186263 60.79089 \n",
       "L 511.350143 44.79089 \n",
       "L 511.514022 56.79089 \n",
       "L 511.677902 24.79089 \n",
       "L 512.005661 60.79089 \n",
       "L 512.16954 36.79089 \n",
       "L 512.33342 48.79089 \n",
       "L 512.497299 44.79089 \n",
       "L 512.825058 56.79089 \n",
       "L 512.988938 44.79089 \n",
       "L 513.152818 72.79089 \n",
       "L 513.316697 68.79089 \n",
       "L 513.480577 32.79089 \n",
       "L 513.644456 44.79089 \n",
       "L 513.808336 40.79089 \n",
       "L 513.972215 28.79089 \n",
       "L 514.136095 64.79089 \n",
       "L 514.299974 28.79089 \n",
       "L 514.463854 36.79089 \n",
       "L 514.627733 56.79089 \n",
       "L 514.955492 44.79089 \n",
       "L 515.119372 48.79089 \n",
       "L 515.283252 32.79089 \n",
       "L 515.447131 60.79089 \n",
       "L 515.611011 44.79089 \n",
       "L 515.77489 64.79089 \n",
       "L 515.93877 56.79089 \n",
       "L 516.102649 60.79089 \n",
       "L 516.266529 68.79089 \n",
       "L 516.430408 36.79089 \n",
       "L 516.594288 52.79089 \n",
       "L 516.758167 48.79089 \n",
       "L 516.922047 56.79089 \n",
       "L 517.085926 40.79089 \n",
       "L 517.249806 60.79089 \n",
       "L 517.577565 36.79089 \n",
       "L 517.741445 48.79089 \n",
       "L 517.905324 36.79089 \n",
       "L 518.069204 36.79089 \n",
       "L 518.233083 32.79089 \n",
       "L 518.396963 48.79089 \n",
       "L 518.560842 52.79089 \n",
       "L 518.724722 44.79089 \n",
       "L 518.888601 28.79089 \n",
       "L 519.052481 44.79089 \n",
       "L 519.38024 20.79089 \n",
       "L 519.54412 20.79089 \n",
       "L 519.707999 64.79089 \n",
       "L 519.871879 36.79089 \n",
       "L 520.035758 36.79089 \n",
       "L 520.199638 20.79089 \n",
       "L 520.363517 36.79089 \n",
       "L 520.527397 36.79089 \n",
       "L 520.855156 44.79089 \n",
       "L 521.019035 56.79089 \n",
       "L 521.346794 44.79089 \n",
       "L 521.510674 44.79089 \n",
       "L 521.674554 48.79089 \n",
       "L 522.002313 48.79089 \n",
       "L 522.166192 56.79089 \n",
       "L 522.330072 52.79089 \n",
       "L 522.493951 68.79089 \n",
       "L 522.657831 40.79089 \n",
       "L 522.98559 48.79089 \n",
       "L 523.149469 60.79089 \n",
       "L 523.313349 56.79089 \n",
       "L 523.641108 36.79089 \n",
       "L 523.804988 36.79089 \n",
       "L 523.968867 28.79089 \n",
       "L 524.132747 32.79089 \n",
       "L 524.296626 40.79089 \n",
       "L 524.460506 28.79089 \n",
       "L 524.624385 40.79089 \n",
       "L 524.788265 32.79089 \n",
       "L 524.952144 44.79089 \n",
       "L 525.116024 24.79089 \n",
       "L 525.607663 44.79089 \n",
       "L 525.771542 40.79089 \n",
       "L 526.099301 40.79089 \n",
       "L 526.263181 36.79089 \n",
       "L 526.42706 36.79089 \n",
       "L 526.59094 40.79089 \n",
       "L 526.754819 60.79089 \n",
       "L 526.918699 40.79089 \n",
       "L 527.082578 60.79089 \n",
       "L 527.410337 36.79089 \n",
       "L 527.738097 52.79089 \n",
       "L 528.065856 44.79089 \n",
       "L 528.229735 52.79089 \n",
       "L 528.393615 32.79089 \n",
       "L 528.557494 40.79089 \n",
       "L 528.721374 28.79089 \n",
       "L 528.885253 76.79089 \n",
       "L 529.213012 52.79089 \n",
       "L 529.376892 44.79089 \n",
       "L 529.540771 48.79089 \n",
       "L 529.704651 28.79089 \n",
       "L 529.868531 28.79089 \n",
       "L 530.03241 52.79089 \n",
       "L 530.524049 40.79089 \n",
       "L 530.687928 28.79089 \n",
       "L 531.015687 44.79089 \n",
       "L 531.179567 36.79089 \n",
       "L 531.507326 44.79089 \n",
       "L 531.671205 52.79089 \n",
       "L 531.835085 40.79089 \n",
       "L 531.998965 40.79089 \n",
       "L 532.162844 44.79089 \n",
       "L 532.326724 44.79089 \n",
       "L 532.490603 60.79089 \n",
       "L 532.818362 44.79089 \n",
       "L 532.982242 40.79089 \n",
       "L 533.146121 32.79089 \n",
       "L 533.310001 32.79089 \n",
       "L 533.47388 36.79089 \n",
       "L 533.63776 32.79089 \n",
       "L 533.80164 48.79089 \n",
       "L 534.129399 40.79089 \n",
       "L 534.293278 40.79089 \n",
       "L 534.457158 32.79089 \n",
       "L 534.784917 56.79089 \n",
       "L 534.948796 40.79089 \n",
       "L 535.112676 60.79089 \n",
       "L 535.440435 32.79089 \n",
       "L 535.604314 40.79089 \n",
       "L 535.768194 56.79089 \n",
       "L 535.932074 60.79089 \n",
       "L 536.095953 60.79089 \n",
       "L 536.259833 36.79089 \n",
       "L 536.423712 36.79089 \n",
       "L 536.587592 52.79089 \n",
       "L 536.915351 36.79089 \n",
       "L 537.07923 40.79089 \n",
       "L 537.24311 40.79089 \n",
       "L 537.406989 28.79089 \n",
       "L 537.570869 44.79089 \n",
       "L 537.898628 32.79089 \n",
       "L 538.226387 44.79089 \n",
       "L 538.390267 32.79089 \n",
       "L 538.554146 52.79089 \n",
       "L 538.718026 36.79089 \n",
       "L 538.881905 44.79089 \n",
       "L 539.045785 36.79089 \n",
       "L 539.209664 40.79089 \n",
       "L 539.373544 40.79089 \n",
       "L 539.537423 36.79089 \n",
       "L 539.701303 20.79089 \n",
       "L 539.865182 44.79089 \n",
       "L 540.029062 40.79089 \n",
       "L 540.192942 28.79089 \n",
       "L 540.520701 40.79089 \n",
       "L 540.68458 60.79089 \n",
       "L 540.84846 24.79089 \n",
       "L 541.176219 40.79089 \n",
       "L 541.340098 40.79089 \n",
       "L 541.503978 56.79089 \n",
       "L 541.667857 24.79089 \n",
       "L 541.995616 48.79089 \n",
       "L 542.159496 44.79089 \n",
       "L 542.323376 56.79089 \n",
       "L 542.487255 52.79089 \n",
       "L 542.651135 36.79089 \n",
       "L 542.815014 32.79089 \n",
       "L 542.978894 44.79089 \n",
       "L 543.142773 32.79089 \n",
       "L 543.470532 48.79089 \n",
       "L 543.634412 48.79089 \n",
       "L 543.798291 40.79089 \n",
       "L 543.962171 60.79089 \n",
       "L 544.126051 28.79089 \n",
       "L 544.28993 28.79089 \n",
       "L 544.45381 60.79089 \n",
       "L 544.617689 32.79089 \n",
       "L 544.781569 52.79089 \n",
       "L 544.945448 48.79089 \n",
       "L 545.109328 52.79089 \n",
       "L 545.273207 64.79089 \n",
       "L 545.437087 48.79089 \n",
       "L 545.764846 40.79089 \n",
       "L 545.928725 44.79089 \n",
       "L 546.092605 40.79089 \n",
       "L 546.256485 44.79089 \n",
       "L 546.420364 44.79089 \n",
       "L 546.584244 48.79089 \n",
       "L 546.748123 28.79089 \n",
       "L 546.912003 68.79089 \n",
       "L 547.239762 44.79089 \n",
       "L 547.567521 28.79089 \n",
       "L 547.7314 44.79089 \n",
       "L 547.89528 32.79089 \n",
       "L 548.059159 44.79089 \n",
       "L 548.223039 44.79089 \n",
       "L 548.386919 52.79089 \n",
       "L 548.550798 36.79089 \n",
       "L 548.714678 40.79089 \n",
       "L 548.878557 36.79089 \n",
       "L 549.042437 60.79089 \n",
       "L 549.206316 32.79089 \n",
       "L 549.370196 48.79089 \n",
       "L 549.534075 32.79089 \n",
       "L 549.697955 36.79089 \n",
       "L 549.861834 32.79089 \n",
       "L 550.189593 48.79089 \n",
       "L 550.353473 44.79089 \n",
       "L 550.517353 48.79089 \n",
       "L 550.681232 44.79089 \n",
       "L 551.008991 28.79089 \n",
       "L 551.33675 48.79089 \n",
       "L 551.50063 44.79089 \n",
       "L 551.828389 28.79089 \n",
       "L 551.992268 28.79089 \n",
       "L 552.156148 44.79089 \n",
       "L 552.320028 28.79089 \n",
       "L 552.483907 44.79089 \n",
       "L 552.811666 36.79089 \n",
       "L 552.975546 44.79089 \n",
       "L 553.139425 40.79089 \n",
       "L 553.303305 32.79089 \n",
       "L 553.631064 56.79089 \n",
       "L 553.958823 36.79089 \n",
       "L 554.122702 36.79089 \n",
       "L 554.286582 52.79089 \n",
       "L 554.450462 48.79089 \n",
       "L 554.614341 36.79089 \n",
       "L 554.778221 40.79089 \n",
       "L 554.9421 32.79089 \n",
       "L 555.10598 52.79089 \n",
       "L 555.269859 32.79089 \n",
       "L 555.433739 60.79089 \n",
       "L 555.597618 32.79089 \n",
       "L 555.761498 60.79089 \n",
       "L 556.089257 52.79089 \n",
       "L 556.417016 52.79089 \n",
       "L 556.580896 48.79089 \n",
       "L 556.744775 60.79089 \n",
       "L 556.908655 36.79089 \n",
       "L 557.072534 52.79089 \n",
       "L 557.400293 24.79089 \n",
       "L 557.564173 48.79089 \n",
       "L 557.728052 48.79089 \n",
       "L 558.055811 32.79089 \n",
       "L 558.219691 64.79089 \n",
       "L 558.38357 28.79089 \n",
       "L 558.54745 52.79089 \n",
       "L 558.71133 28.79089 \n",
       "L 558.875209 44.79089 \n",
       "L 559.202968 28.79089 \n",
       "L 559.366848 28.79089 \n",
       "L 559.530727 44.79089 \n",
       "L 559.694607 36.79089 \n",
       "L 559.858486 60.79089 \n",
       "L 560.022366 40.79089 \n",
       "L 560.350125 40.79089 \n",
       "L 560.514004 64.79089 \n",
       "L 560.841764 32.79089 \n",
       "L 561.169523 56.79089 \n",
       "L 561.333402 52.79089 \n",
       "L 561.497282 36.79089 \n",
       "L 561.661161 36.79089 \n",
       "L 561.825041 44.79089 \n",
       "L 561.98892 28.79089 \n",
       "L 562.1528 52.79089 \n",
       "L 562.316679 28.79089 \n",
       "L 562.480559 40.79089 \n",
       "L 562.644439 28.79089 \n",
       "L 562.972198 44.79089 \n",
       "L 563.136077 40.79089 \n",
       "L 563.299957 24.79089 \n",
       "L 563.463836 56.79089 \n",
       "L 563.627716 56.79089 \n",
       "L 563.791595 40.79089 \n",
       "L 564.119354 40.79089 \n",
       "L 564.283234 56.79089 \n",
       "L 564.447113 36.79089 \n",
       "L 564.774873 44.79089 \n",
       "L 564.938752 40.79089 \n",
       "L 565.102632 56.79089 \n",
       "L 565.430391 32.79089 \n",
       "L 565.59427 32.79089 \n",
       "L 565.75815 28.79089 \n",
       "L 566.085909 48.79089 \n",
       "L 566.249788 44.79089 \n",
       "L 566.413668 52.79089 \n",
       "L 566.577547 28.79089 \n",
       "L 566.905307 44.79089 \n",
       "L 567.069186 32.79089 \n",
       "L 567.396945 40.79089 \n",
       "L 567.724704 20.79089 \n",
       "L 567.888584 36.79089 \n",
       "L 568.052463 28.79089 \n",
       "L 568.216343 52.79089 \n",
       "L 568.544102 32.79089 \n",
       "L 568.707981 40.79089 \n",
       "L 569.035741 32.79089 \n",
       "L 569.19962 52.79089 \n",
       "L 569.3635 36.79089 \n",
       "L 569.527379 40.79089 \n",
       "L 569.691259 40.79089 \n",
       "L 569.855138 52.79089 \n",
       "L 570.019018 48.79089 \n",
       "L 570.182897 60.79089 \n",
       "L 570.510656 28.79089 \n",
       "L 570.838415 36.79089 \n",
       "L 571.002295 52.79089 \n",
       "L 571.330054 40.79089 \n",
       "L 571.493934 40.79089 \n",
       "L 571.657813 32.79089 \n",
       "L 571.821693 68.79089 \n",
       "L 571.985572 60.79089 \n",
       "L 572.149452 36.79089 \n",
       "L 572.313331 32.79089 \n",
       "L 572.477211 24.79089 \n",
       "L 572.80497 44.79089 \n",
       "L 572.96885 20.79089 \n",
       "L 573.132729 48.79089 \n",
       "L 573.460488 36.79089 \n",
       "L 573.788247 48.79089 \n",
       "L 573.952127 44.79089 \n",
       "L 574.279886 28.79089 \n",
       "L 574.607645 40.79089 \n",
       "L 574.771524 64.79089 \n",
       "L 575.099284 28.79089 \n",
       "L 575.263163 28.79089 \n",
       "L 575.427043 56.79089 \n",
       "L 575.590922 64.79089 \n",
       "L 575.754802 64.79089 \n",
       "L 575.918681 40.79089 \n",
       "L 576.24644 40.79089 \n",
       "L 576.41032 48.79089 \n",
       "L 576.574199 44.79089 \n",
       "L 576.574199 44.79089 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_66\">\n",
       "    <path d=\"M 345.995687 272.79089 \n",
       "L 357.532807 134.34609 \n",
       "L 369.069926 103.52369 \n",
       "L 380.607046 86.42289 \n",
       "L 392.144165 82.07089 \n",
       "L 403.681285 70.14129 \n",
       "L 415.218405 66.65969 \n",
       "L 426.755524 60.82289 \n",
       "L 438.292644 60.87409 \n",
       "L 449.829763 58.57009 \n",
       "L 461.366883 58.41649 \n",
       "L 472.904003 56.01009 \n",
       "L 484.441122 56.26609 \n",
       "L 495.978242 54.26929 \n",
       "L 507.515361 52.42609 \n",
       "L 519.052481 52.42609 \n",
       "L 530.589601 50.27569 \n",
       "L 542.12672 48.99569 \n",
       "L 553.66384 54.06449 \n",
       "L 565.200959 49.81489 \n",
       "\" clip-path=\"url(#pa3db446e1f)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_9\">\n",
       "    <path d=\"M 334.466761 285.39089 \n",
       "L 334.466761 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_10\">\n",
       "    <path d=\"M 588.103125 285.39089 \n",
       "L 588.103125 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_11\">\n",
       "    <path d=\"M 334.466761 285.39089 \n",
       "L 588.103125 285.39089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_12\">\n",
       "    <path d=\"M 334.466761 8.19089 \n",
       "L 588.103125 8.19089 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"legend_2\">\n",
       "    <g id=\"patch_13\">\n",
       "     <path d=\"M 503.703125 280.39089 \n",
       "L 581.103125 280.39089 \n",
       "Q 583.103125 280.39089 583.103125 278.39089 \n",
       "L 583.103125 249.47839 \n",
       "Q 583.103125 247.47839 581.103125 247.47839 \n",
       "L 503.703125 247.47839 \n",
       "Q 501.703125 247.47839 501.703125 249.47839 \n",
       "L 501.703125 278.39089 \n",
       "Q 501.703125 280.39089 503.703125 280.39089 \n",
       "z\n",
       "\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_67\">\n",
       "     <path d=\"M 505.703125 255.576828 \n",
       "L 515.703125 255.576828 \n",
       "L 525.703125 255.576828 \n",
       "\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_35\">\n",
       "     <!-- train_acc -->\n",
       "     <g transform=\"translate(533.703125 259.076828) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-63\" d=\"M 3122 3366 \n",
       "L 3122 2828 \n",
       "Q 2878 2963 2633 3030 \n",
       "Q 2388 3097 2138 3097 \n",
       "Q 1578 3097 1268 2742 \n",
       "Q 959 2388 959 1747 \n",
       "Q 959 1106 1268 751 \n",
       "Q 1578 397 2138 397 \n",
       "Q 2388 397 2633 464 \n",
       "Q 2878 531 3122 666 \n",
       "L 3122 134 \n",
       "Q 2881 22 2623 -34 \n",
       "Q 2366 -91 2075 -91 \n",
       "Q 1284 -91 818 406 \n",
       "Q 353 903 353 1747 \n",
       "Q 353 2603 823 3093 \n",
       "Q 1294 3584 2113 3584 \n",
       "Q 2378 3584 2631 3529 \n",
       "Q 2884 3475 3122 3366 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-5f\" x=\"232.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"282.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"344.042969\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"399.023438\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_68\">\n",
       "     <path d=\"M 505.703125 270.533078 \n",
       "L 515.703125 270.533078 \n",
       "L 525.703125 270.533078 \n",
       "\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_36\">\n",
       "     <!-- val_acc -->\n",
       "     <g transform=\"translate(533.703125 274.033078) scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#DejaVuSans-76\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"59.179688\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"120.458984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-5f\" x=\"148.242188\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"198.242188\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"259.521484\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"314.501953\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p9587c0e5d4\">\n",
       "   <rect x=\"30.103125\" y=\"8.19089\" width=\"253.636364\" height=\"277.2\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pa3db446e1f\">\n",
       "   <rect x=\"334.466761\" y=\"8.19089\" width=\"253.636364\" height=\"277.2\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 1000x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画线要注意的是损失是不一定在零到1之间的\n",
    "def plot_learning_curves(record_dict, sample_step=500):\n",
    "    # build DataFrame\n",
    "    train_df = pd.DataFrame(record_dict[\"train\"]).set_index(\"step\").iloc[::sample_step]\n",
    "    val_df = pd.DataFrame(record_dict[\"val\"]).set_index(\"step\")\n",
    "\n",
    "    # plot\n",
    "    fig_num = len(train_df.columns)\n",
    "    fig, axs = plt.subplots(1, fig_num, figsize=(5 * fig_num, 5))\n",
    "    for idx, item in enumerate(train_df.columns):    \n",
    "        axs[idx].plot(train_df.index, train_df[item], label=f\"train_{item}\")\n",
    "        axs[idx].plot(val_df.index, val_df[item], label=f\"val_{item}\")\n",
    "        axs[idx].grid()\n",
    "        axs[idx].legend()\n",
    "        # axs[idx].set_xticks(range(0, train_df.index[-1], 5000))\n",
    "        # axs[idx].set_xticklabels(map(lambda x: f\"{int(x/1000)}k\", range(0, train_df.index[-1], 5000)))\n",
    "        axs[idx].set_xlabel(\"step\")\n",
    "    \n",
    "    plt.show()\n",
    "\n",
    "plot_learning_curves(record, sample_step=10)  #横坐标是 steps"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.4316\n",
      "accuracy: 0.8742\n"
     ]
    }
   ],
   "source": [
    "# dataload for evaluating\n",
    "\n",
    "# load checkpoints\n",
    "model.load_state_dict(torch.load(\"checkpoints/cifar-10/best.ckpt\", map_location=\"cpu\"))\n",
    "\n",
    "model.eval()\n",
    "loss, acc = evaluating(model, eval_dl, loss_fct)\n",
    "print(f\"loss:     {loss:.4f}\\naccuracy: {acc:.4f}\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 推理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7e9d1f27bea74dea9892c1dabfb352d5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/4688 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>filepath</th>\n",
       "      <th>class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>cifar-10/test/1.png</td>\n",
       "      <td>airplane</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>cifar-10/test/2.png</td>\n",
       "      <td>airplane</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>cifar-10/test/3.png</td>\n",
       "      <td>automobile</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>cifar-10/test/4.png</td>\n",
       "      <td>ship</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>cifar-10/test/5.png</td>\n",
       "      <td>airplane</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              filepath       class\n",
       "0  cifar-10/test/1.png    airplane\n",
       "1  cifar-10/test/2.png    airplane\n",
       "2  cifar-10/test/3.png  automobile\n",
       "3  cifar-10/test/4.png        ship\n",
       "4  cifar-10/test/5.png    airplane"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# test_df\n",
    "test_ds = Cifar10Dataset(\"test\", transform=transforms_eval)\n",
    "test_dl = DataLoader(test_ds, batch_size=batch_size, shuffle=False, drop_last=False)\n",
    "\n",
    "preds_collect = [] # 预测结果收集器\n",
    "model.eval()\n",
    "for data, fake_label in tqdm(test_dl):\n",
    "    data = data.to(device=device)\n",
    "    logits = model(data) #得到预测结果\n",
    "    preds = [test_ds.idx_to_label[idx] for idx in logits.argmax(axis=-1).cpu().tolist()] # 得到预测类别，idx_to_label是id到字符串类别的映射\n",
    "    preds_collect.extend(preds)\n",
    "    \n",
    "test_df[\"label\"] = preds_collect # 增加预测类别列,比赛要求这一列是label\n",
    "test_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [
    {
     "data": {
      "text/plain": "300032"
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "64*4688"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-04-30T01:29:55.567562100Z",
     "start_time": "2024-04-30T01:29:55.544576400Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导出 submission.csv\n",
    "test_df.to_csv(\"submission.csv\", index=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
